diff options
| author | Chandler Carruth <chandlerc@gmail.com> | 2014-10-18 11:00:12 +0000 |
|---|---|---|
| committer | Chandler Carruth <chandlerc@gmail.com> | 2014-10-18 11:00:12 +0000 |
| commit | be9dccd64d25227832f9cf0c1775acfa072be529 (patch) | |
| tree | 0b02ffa55c8e3064c613f6e6fa7c9d40cd24861b /llvm/test/Transforms | |
| parent | 6ec434e8bf816e757041b3bedc78356765dee950 (diff) | |
| download | bcm5719-llvm-be9dccd64d25227832f9cf0c1775acfa072be529.tar.gz bcm5719-llvm-be9dccd64d25227832f9cf0c1775acfa072be529.zip | |
Preserve AA metadata when combining (cast (load (...))) -> (load (cast
(...))).
llvm-svn: 220141
Diffstat (limited to 'llvm/test/Transforms')
| -rw-r--r-- | llvm/test/Transforms/InstCombine/loadstore-aa-metadata.ll | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/loadstore-aa-metadata.ll b/llvm/test/Transforms/InstCombine/loadstore-aa-metadata.ll new file mode 100644 index 00000000000..691f7f8345f --- /dev/null +++ b/llvm/test/Transforms/InstCombine/loadstore-aa-metadata.ll @@ -0,0 +1,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 } |

