Taints the non-acquire RMW's store address with the load part
[oota-llvm.git] / test / CodeGen / PowerPC / vec_buildvector_loadstore.ll
1 ; RUN: llc < %s -march=ppc32 -mtriple=powerpc-apple-darwin -mattr=+altivec -disable-ppc-ilp-pref  | FileCheck %s
2 ; Formerly this did byte loads and word stores.
3 @a = external global <16 x i8>
4 @b = external global <16 x i8>
5 @c = external global <16 x i8>
6
7 define void @foo() nounwind ssp {
8 ; CHECK: _foo:
9 ; CHECK-NOT: stw
10 entry:
11     %tmp0 = load <16 x i8>, <16 x i8>* @a, align 16
12   %tmp180.i = extractelement <16 x i8> %tmp0, i32 0 ; <i8> [#uses=1]
13   %tmp181.i = insertelement <16 x i8> <i8 0, i8 0, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef>, i8 %tmp180.i, i32 2 ; <<16 x i8>> [#uses=1]
14   %tmp182.i = extractelement <16 x i8> %tmp0, i32 1 ; <i8> [#uses=1]
15   %tmp183.i = insertelement <16 x i8> %tmp181.i, i8 %tmp182.i, i32 3 ; <<16 x i8>> [#uses=1]
16   %tmp184.i = insertelement <16 x i8> %tmp183.i, i8 0, i32 4 ; <<16 x i8>> [#uses=1]
17   %tmp185.i = insertelement <16 x i8> %tmp184.i, i8 0, i32 5 ; <<16 x i8>> [#uses=1]
18   %tmp186.i = extractelement <16 x i8> %tmp0, i32 4 ; <i8> [#uses=1]
19   %tmp187.i = insertelement <16 x i8> %tmp185.i, i8 %tmp186.i, i32 6 ; <<16 x i8>> [#uses=1]
20   %tmp188.i = extractelement <16 x i8> %tmp0, i32 5 ; <i8> [#uses=1]
21   %tmp189.i = insertelement <16 x i8> %tmp187.i, i8 %tmp188.i, i32 7 ; <<16 x i8>> [#uses=1]
22   %tmp190.i = insertelement <16 x i8> %tmp189.i, i8 0, i32 8 ; <<16 x i8>> [#uses=1]
23   %tmp191.i = insertelement <16 x i8> %tmp190.i, i8 0, i32 9 ; <<16 x i8>> [#uses=1]
24   %tmp192.i = extractelement <16 x i8> %tmp0, i32 8 ; <i8> [#uses=1]
25   %tmp193.i = insertelement <16 x i8> %tmp191.i, i8 %tmp192.i, i32 10 ; <<16 x i8>> [#uses=1]
26   %tmp194.i = extractelement <16 x i8> %tmp0, i32 9 ; <i8> [#uses=1]
27   %tmp195.i = insertelement <16 x i8> %tmp193.i, i8 %tmp194.i, i32 11 ; <<16 x i8>> [#uses=1]
28   %tmp196.i = insertelement <16 x i8> %tmp195.i, i8 0, i32 12 ; <<16 x i8>> [#uses=1]
29   %tmp197.i = insertelement <16 x i8> %tmp196.i, i8 0, i32 13 ; <<16 x i8>> [#uses=1]
30 %tmp201 = shufflevector <16 x i8> %tmp197.i, <16 x i8> %tmp0, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 28, i32 29>; ModuleID = 'try.c'
31     store <16 x i8> %tmp201, <16 x i8>* @c, align 16
32     br label %return
33
34 return:         ; preds = %bb2
35         ret void
36 ; CHECK: blr
37 }