| OLD | NEW | 
|---|
| 1 ; Some shufflevector optimized lowering. This list is by no means exhaustive. It | 1 ; Some shufflevector optimized lowering. This list is by no means exhaustive. It | 
| 2 ; is only a **basic** smoke test. the vector_ops crosstest has a broader range | 2 ; is only a **basic** smoke test. the vector_ops crosstest has a broader range | 
| 3 ; of test cases. | 3 ; of test cases. | 
| 4 | 4 | 
| 5 ; RUN: %p2i -i %s --target=x8632 --filetype=obj --disassemble -a -O2 \ | 5 ; RUN: %p2i -i %s --target=x8632 --filetype=obj --disassemble -a -O2 \ | 
| 6 ; RUN:     --allow-externally-defined-symbols | FileCheck %s --check-prefix=X86 | 6 ; RUN:     --allow-externally-defined-symbols | FileCheck %s --check-prefix=X86 | 
| 7 | 7 | 
|  | 8 ; RUN: %if --need=target_MIPS32 --need=allow_dump \ | 
|  | 9 ; RUN:   --command %p2i --filetype=asm --assemble --disassemble --target \ | 
|  | 10 ; RUN:   mips32 -i %s --args -O2 -allow-externally-defined-symbols \ | 
|  | 11 ; RUN:   | %if --need=target_MIPS32 --need=allow_dump \ | 
|  | 12 ; RUN:   --command FileCheck --check-prefix MIPS32 %s | 
|  | 13 | 
| 8 declare void @useV4I32(<4 x i32> %t); | 14 declare void @useV4I32(<4 x i32> %t); | 
| 9 | 15 | 
| 10 define internal void @shuffleV4I32(<4 x i32> %a, <4 x i32> %b) { | 16 define internal void @shuffleV4I32(<4 x i32> %a, <4 x i32> %b) { | 
| 11 ; X86-LABEL: shuffleV4I32 | 17 ; X86-LABEL: shuffleV4I32 | 
| 12   %a_0 = extractelement <4 x i32> %a, i32 0 | 18   %a_0 = extractelement <4 x i32> %a, i32 0 | 
| 13   %a_1 = extractelement <4 x i32> %a, i32 1 | 19   %a_1 = extractelement <4 x i32> %a, i32 1 | 
| 14   %a_2 = extractelement <4 x i32> %a, i32 2 | 20   %a_2 = extractelement <4 x i32> %a, i32 2 | 
| 15   %a_3 = extractelement <4 x i32> %a, i32 3 | 21   %a_3 = extractelement <4 x i32> %a, i32 3 | 
| 16 | 22 | 
| 17   %b_0 = extractelement <4 x i32> %b, i32 0 | 23   %b_0 = extractelement <4 x i32> %b, i32 0 | 
| (...skipping 26 matching lines...) Expand all  Loading... | 
| 44   %t2   = insertelement <4 x i32> %t2_2, i32 %b_2, i32 3 | 50   %t2   = insertelement <4 x i32> %t2_2, i32 %b_2, i32 3 | 
| 45 ; X86: shufps {{.*}},0x30 | 51 ; X86: shufps {{.*}},0x30 | 
| 46 ; X86: shufps {{.*}},0x22 | 52 ; X86: shufps {{.*}},0x22 | 
| 47 ; X86: shufps {{.*}},0x88 | 53 ; X86: shufps {{.*}},0x88 | 
| 48 | 54 | 
| 49   call void @useV4I32(<4 x i32> %t2) | 55   call void @useV4I32(<4 x i32> %t2) | 
| 50 ; X86: call | 56 ; X86: call | 
| 51 | 57 | 
| 52   ret void | 58   ret void | 
| 53 } | 59 } | 
|  | 60 ; MIPS32-LABEL: shuffleV4I32 | 
|  | 61 ; MIPS32:       move | 
|  | 62 ; MIPS32:       move | 
|  | 63 ; MIPS32:       move | 
|  | 64 ; MIPS32:       move | 
|  | 65 ; MIPS32:       jal | 
|  | 66 ; MIPS32:       move | 
|  | 67 ; MIPS32:       move | 
|  | 68 ; MIPS32:       move | 
|  | 69 ; MIPS32:       move | 
|  | 70 ; MIPS32:       jal | 
|  | 71 ; MIPS32:       move | 
|  | 72 ; MIPS32:       move | 
|  | 73 ; MIPS32:       move | 
|  | 74 ; MIPS32:       move | 
|  | 75 ; MIPS32:       jal | 
| OLD | NEW | 
|---|