[OpenACC] Enable 'attach' clause for combined constructs
[llvm-project.git] / llvm / test / CodeGen / X86 / opt_phis2.mir
blob421a986d2601b8adddec058e78828e6efc2cb805
1 # RUN: llc -run-pass opt-phis -mtriple=x86_64-- -o - %s | FileCheck %s
2 # RUN: llc -passes opt-phis -mtriple=x86_64-- -o - %s | FileCheck %s
3 # All PHIs should be removed since they can be securely replaced
4 # by %8 register.
5 # CHECK-NOT: PHI
6 --- |
7   define void @test() {
8     ret void
9   }
10 ...
11 ---
12 name:            test
13 alignment:       16
14 tracksRegLiveness: true
15 jumpTable:
16   kind:            block-address
17   entries:
18     - id:              0
19       blocks:          [ '%bb.3', '%bb.2', '%bb.1', '%bb.4' ]
20 body:             |
21   bb.0:
22     liveins: $edi, $ymm0, $rsi
24     %9:gr64 = COPY $rsi
25     %8:vr256 = COPY $ymm0
26     %7:gr32 = COPY $edi
27     %11:gr32 = SAR32ri %7, 31, implicit-def dead $eflags
28     %12:gr32 = SHR32ri %11, 30, implicit-def dead $eflags
29     %13:gr32 = ADD32rr %7, killed %12, implicit-def dead $eflags
30     %14:gr32 = AND32ri8 %13, -4, implicit-def dead $eflags
31     %15:gr32 = SUB32rr %7, %14, implicit-def dead $eflags
32     %10:gr64_nosp = SUBREG_TO_REG 0, %15, %subreg.sub_32bit
33     %16:gr32 = SUB32ri8 %15, 3, implicit-def $eflags
34     JCC_1 %bb.8, 7, implicit $eflags
36   bb.9:
37     JMP64m $noreg, 8, %10, %jump-table.0, $noreg :: (load (s64) from jump-table)
39   bb.1:
40     %0:vr256 = COPY %8
41     JMP_1 %bb.5
43   bb.2:
44     %1:vr256 = COPY %8
45     JMP_1 %bb.6
47   bb.3:
48     %2:vr256 = COPY %8
49     JMP_1 %bb.7
51   bb.4:
52     %3:vr256 = COPY %8
53     %17:vr128 = VEXTRACTF128rri %8, 1
54     VPEXTRDmri %9, 1, $noreg, 12, $noreg, killed %17, 2
56   bb.5:
57     %4:vr256 = PHI %0, %bb.1, %3, %bb.4
58     %18:vr128 = VEXTRACTF128rri %4, 1
59     VPEXTRDmri %9, 1, $noreg, 8, $noreg, killed %18, 1
61   bb.6:
62     %5:vr256 = PHI %1, %bb.2, %4, %bb.5
63     %19:vr128 = VEXTRACTF128rri %5, 1
64     VMOVPDI2DImr %9, 1, $noreg, 4, $noreg, killed %19
66   bb.7:
67     %6:vr256 = PHI %2, %bb.3, %5, %bb.6
68     %20:vr128 = COPY %6.sub_xmm
69     VPEXTRDmri %9, 1, $noreg, 0, $noreg, killed %20, 3
71   bb.8:
72     RET 0
73 ...