Revert r197438 and r197447 until we figure out how to avoid circular dependency at...
[oota-llvm.git] / test / CodeGen / X86 / 2009-04-21-NoReloadImpDef.ll
1 ; RUN: llc -mtriple=i386-apple-darwin10.0 -relocation-model=pic -asm-verbose=false \
2 ; RUN:     -mcpu=generic -disable-fp-elim -mattr=-sse4.1,-sse3,+sse2 -post-RA-scheduler=false -regalloc=basic < %s | \
3 ; RUN:   FileCheck %s
4 ; rdar://6808032
5
6 ; CHECK: pextrw $14
7 ; CHECK-NEXT: shrl $8
8 ; CHECK-NEXT: pinsrw
9
10 define void @update(i8** %args_list) nounwind {
11 entry:
12         %cmp.i = icmp eq i32 0, 0               ; <i1> [#uses=1]
13         br i1 %cmp.i, label %if.then.i, label %test_cl.exit
14
15 if.then.i:              ; preds = %entry
16         %val = load <16 x i8> addrspace(1)* null                ; <<16 x i8>> [#uses=8]
17         %tmp10.i = shufflevector <16 x i8> <i8 0, i8 0, i8 0, i8 undef, i8 0, i8 undef, i8 0, i8 undef, i8 undef, i8 undef, i8 0, i8 0, i8 0, i8 undef, i8 undef, i8 undef>, <16 x i8> %val, <16 x i32> <i32 0, i32 1, i32 2, i32 undef, i32 4, i32 undef, i32 6, i32 undef, i32 29, i32 undef, i32 10, i32 11, i32 12, i32 undef, i32 undef, i32 undef>                ; <<16 x i8>> [#uses=1]
18         %tmp17.i = shufflevector <16 x i8> %tmp10.i, <16 x i8> %val, <16 x i32> <i32 0, i32 1, i32 2, i32 18, i32 4, i32 undef, i32 6, i32 undef, i32 8, i32 undef, i32 10, i32 11, i32 12, i32 undef, i32 undef, i32 undef>            ; <<16 x i8>> [#uses=1]
19         %tmp24.i = shufflevector <16 x i8> %tmp17.i, <16 x i8> %val, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 24, i32 6, i32 undef, i32 8, i32 undef, i32 10, i32 11, i32 12, i32 undef, i32 undef, i32 undef>                ; <<16 x i8>> [#uses=1]
20         %tmp31.i = shufflevector <16 x i8> %tmp24.i, <16 x i8> %val, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 undef, i32 8, i32 undef, i32 10, i32 11, i32 12, i32 21, i32 undef, i32 undef>            ; <<16 x i8>> [#uses=1]
21         %tmp38.i = shufflevector <16 x i8> %tmp31.i, <16 x i8> %val, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 27, i32 8, i32 undef, i32 10, i32 11, i32 12, i32 13, i32 undef, i32 undef>               ; <<16 x i8>> [#uses=1]
22         %tmp45.i = shufflevector <16 x i8> %tmp38.i, <16 x i8> %val, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 undef, i32 10, i32 11, i32 12, i32 13, i32 29, i32 undef>           ; <<16 x i8>> [#uses=1]
23         %tmp52.i = shufflevector <16 x i8> %tmp45.i, <16 x i8> %val, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 21, i32 10, i32 11, i32 12, i32 13, i32 14, i32 undef>              ; <<16 x i8>> [#uses=1]
24         %tmp59.i = shufflevector <16 x i8> %tmp52.i, <16 x i8> %val, <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 14, i32 20>          ; <<16 x i8>> [#uses=1]
25         store <16 x i8> %tmp59.i, <16 x i8> addrspace(1)* null
26         ret void
27
28 test_cl.exit:           ; preds = %entry
29         ret void
30 }