xref: /llvm-project/llvm/test/CodeGen/ARM/GlobalISel/thumb-select-phi.mir (revision 19dbc6245fd922ee6d1b1eaa8d9c589d97610eb6)
1# RUN: llc -O0 -mtriple thumb-- -mattr=+v6t2 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
2--- |
3  define void @test_phi_s32() { ret void }
4...
5---
6name:            test_phi_s32
7# CHECK-LABEL: name: test_phi_s32
8legalized:       true
9regBankSelected: true
10selected:        false
11# CHECK: selected: true
12tracksRegLiveness: true
13registers:
14  - { id: 0, class: gprb }
15  - { id: 1, class: gprb }
16  - { id: 2, class: gprb }
17  - { id: 3, class: gprb }
18  - { id: 4, class: gprb }
19body:             |
20  bb.0:
21  ; CHECK: [[BB1:bb.0]]:
22    successors: %bb.1(0x40000000), %bb.2(0x40000000)
23    liveins: $r0, $r1, $r2
24
25    %0(s32) = COPY $r0
26    %1(s1) = G_TRUNC %0(s32)
27
28    %2(s32) = COPY $r1
29    %3(s32) = COPY $r2
30    ; CHECK: [[V1:%[0-9]+]]:gpr = COPY $r1
31    ; CHECK: [[V2:%[0-9]+]]:gpr = COPY $r2
32
33    G_BRCOND %1(s1), %bb.1
34    G_BR %bb.2
35
36  bb.1:
37  ; CHECK: [[BB2:bb.1]]:
38    successors: %bb.2(0x80000000)
39
40    G_BR %bb.2
41    ; CHECK: B %bb.2
42
43  bb.2:
44  ; CHECK: bb.2
45    %4(s32) = G_PHI %2(s32), %bb.0, %3(s32), %bb.1
46    ; CHECK: {{%[0-9]+}}:gpr = PHI [[V1]], %[[BB1]], [[V2]], %[[BB2]]
47
48    $r0 = COPY %4(s32)
49    BX_RET 14, $noreg, implicit $r0
50...
51