diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2017-12-02 12:46:48 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2017-12-02 12:46:48 +0000 |
| commit | b5ea630dfd1a0d3e5c08d8959158608dd213d9aa (patch) | |
| tree | 414ded0ca2d2732345c4d423b8f3cd326d9097e8 /test/CodeGen/tbaa-vec.cpp | |
| parent | 4bc3002fe03f32a9d85720bece65eeda40c75742 (diff) | |
Notes
Diffstat (limited to 'test/CodeGen/tbaa-vec.cpp')
| -rw-r--r-- | test/CodeGen/tbaa-vec.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/CodeGen/tbaa-vec.cpp b/test/CodeGen/tbaa-vec.cpp new file mode 100644 index 000000000000..5f61b934f00e --- /dev/null +++ b/test/CodeGen/tbaa-vec.cpp @@ -0,0 +1,20 @@ +// RUN: %clang_cc1 -triple x86_64-apple-darwin -O1 -disable-llvm-passes %s -emit-llvm -o - | FileCheck %s +// Test TBAA metadata generated by front-end (vector types are always treated as mayalias). + +typedef float __m128 __attribute__ ((__vector_size__ (16))); + +struct A { + __m128 a, b; +}; + +void foo(A *a, __m128 v) { + // CHECK-LABEL: define void @_Z3fooP1ADv4_f + a->a = v; + // CHECK: store <4 x float> %v, <4 x float>* %{{.*}}, align 16, !tbaa [[TAG_char:!.*]] + // CHECK: store <4 x float> %{{.*}}, <4 x float>* %{{.*}}, align 16, !tbaa [[TAG_char]] +} + +// CHECK: [[TYPE_char:!.*]] = !{!"omnipotent char", [[TAG_cxx_tbaa:!.*]], +// CHECK: [[TAG_cxx_tbaa]] = !{!"Simple C++ TBAA"} +// CHECK: [[TAG_char]] = !{[[TYPE_char]], [[TYPE_char]], i64 0} + |
