summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/InstCombine/loadstore-aa-metadata.ll
blob: 691f7f8345ff05e630f52c4ccd4fd8d05ab22145 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
; RUN: opt -instcombine -S < %s | FileCheck %s

define i32 @test_load_cast_combine_tbaa(float* %ptr) {
; Ensure (cast (load (...))) -> (load (cast (...))) preserves TBAA.
; CHECK-LABEL: @test_load_cast_combine_tbaa(
; CHECK: load i32* %{{.*}}, !tbaa !0
entry:
  %l = load float* %ptr, !tbaa !0
  %c = bitcast float %l to i32
  ret i32 %c
}

define i32 @test_load_cast_combine_noalias(float* %ptr) {
; Ensure (cast (load (...))) -> (load (cast (...))) preserves no-alias metadata.
; CHECK-LABEL: @test_load_cast_combine_noalias(
; CHECK: load i32* %{{.*}}, !alias.scope !2, !noalias !1
entry:
  %l = load float* %ptr, !alias.scope !2, !noalias !1
  %c = bitcast float %l to i32
  ret i32 %c
}

!0 = metadata !{ metadata !1, metadata !1, i64 0 }
!1 = metadata !{ metadata !1 }
!2 = metadata !{ metadata !2, metadata !1 }
OpenPOWER on IntegriCloud