[ARM] Adjust how NEON shifts are lowered
[llvm-core.git] / test / CodeGen / X86 / opt_phis2.mir
blob738a2da1f3688dbfdac567c0a7a07695c9ae167d
1 # RUN: llc -run-pass opt-phis -march=x86-64 -o - %s | FileCheck %s
2 # All PHIs should be removed since they can be securely replaced
3 # by %8 register.
4 # CHECK-NOT: PHI
5 --- |
6   define void @test() {
7     ret void
8   }
9 ...
10 ---
11 name:            test
12 alignment:       4
13 tracksRegLiveness: true
14 jumpTable:
15   kind:            block-address
16   entries:
17     - id:              0
18       blocks:          [ '%bb.3', '%bb.2', '%bb.1', '%bb.4' ]
19 body:             |
20   bb.0:
21     liveins: $edi, $ymm0, $rsi
23     %9:gr64 = COPY $rsi
24     %8:vr256 = COPY $ymm0
25     %7:gr32 = COPY $edi
26     %11:gr32 = SAR32ri %7, 31, implicit-def dead $eflags
27     %12:gr32 = SHR32ri %11, 30, implicit-def dead $eflags
28     %13:gr32 = ADD32rr %7, killed %12, implicit-def dead $eflags
29     %14:gr32 = AND32ri8 %13, -4, implicit-def dead $eflags
30     %15:gr32 = SUB32rr %7, %14, implicit-def dead $eflags
31     %10:gr64_nosp = SUBREG_TO_REG 0, %15, %subreg.sub_32bit
32     %16:gr32 = SUB32ri8 %15, 3, implicit-def $eflags
33     JCC_1 %bb.8, 7, implicit $eflags
35   bb.9:
36     JMP64m $noreg, 8, %10, %jump-table.0, $noreg :: (load 8 from jump-table)
38   bb.1:
39     %0:vr256 = COPY %8
40     JMP_1 %bb.5
42   bb.2:
43     %1:vr256 = COPY %8
44     JMP_1 %bb.6
46   bb.3:
47     %2:vr256 = COPY %8
48     JMP_1 %bb.7
50   bb.4:
51     %3:vr256 = COPY %8
52     %17:vr128 = VEXTRACTF128rr %8, 1
53     VPEXTRDmr %9, 1, $noreg, 12, $noreg, killed %17, 2
55   bb.5:
56     %4:vr256 = PHI %0, %bb.1, %3, %bb.4
57     %18:vr128 = VEXTRACTF128rr %4, 1
58     VPEXTRDmr %9, 1, $noreg, 8, $noreg, killed %18, 1
60   bb.6:
61     %5:vr256 = PHI %1, %bb.2, %4, %bb.5
62     %19:vr128 = VEXTRACTF128rr %5, 1
63     VMOVPDI2DImr %9, 1, $noreg, 4, $noreg, killed %19
65   bb.7:
66     %6:vr256 = PHI %2, %bb.3, %5, %bb.6
67     %20:vr128 = COPY %6.sub_xmm
68     VPEXTRDmr %9, 1, $noreg, 0, $noreg, killed %20, 3
70   bb.8:
71     RET 0
72 ...