[MIParser] Set RegClassOrRegBank during instruction parsing
[llvm-complete.git] / test / CodeGen / Hexagon / early-if-predicator.mir
blob785fcd9d873c264f4128453984deae1136fc5f25
1 # RUN: llc -march=hexagon -run-pass early-if-predicator %s -o - -verify-machineinstrs | FileCheck %s
3 # Check that the store gets predicated
4 # CHECK: S4_storeirit_io %2, %0, 0, 1
6 --- |
7   target datalayout = "e-m:e-p:32:32:32-a:0-n16:32-i64:64:64-i32:32:32-i16:16:16-i1:8:8-f32:32:32-f64:64:64-v32:32:32-v64:64:64-v512:512:512-v1024:1024:1024-v2048:2048:2048"
9   define void @if-cvt(i32* %p, i1 %c) {
10   entry:
11     br i1 %c, label %if, label %endif
13   if:                                               ; preds = %entry
14     store i32 1, i32* %p, align 4
15     br label %endif
16   
17   endif:                                            ; preds = %if, %entry
18     ret void
19   }
21 ...
22 ---
23 name:            if-cvt
24 alignment:       16
25 exposesReturnsTwice: false
26 legalized:       false
27 regBankSelected: false
28 selected:        false
29 failedISel:      false
30 tracksRegLiveness: true
31 hasWinCFI:       false
32 registers:
33   - { id: 0, class: intregs, preferred-register: '' }
34   - { id: 1, class: intregs, preferred-register: '' }
35   - { id: 2, class: predregs, preferred-register: '' }
36 liveins:
37   - { reg: '$r0', virtual-reg: '%0' }
38   - { reg: '$r1', virtual-reg: '%1' }
39 frameInfo:
40   isFrameAddressTaken: false
41   isReturnAddressTaken: false
42   hasStackMap:     false
43   hasPatchPoint:   false
44   stackSize:       0
45   offsetAdjustment: 0
46   maxAlignment:    0
47   adjustsStack:    false
48   hasCalls:        true
49   stackProtector:  ''
50   maxCallFrameSize: 4294967295
51   cvBytesOfCalleeSavedRegisters: 0
52   hasOpaqueSPAdjustment: false
53   hasVAStart:      false
54   hasMustTailInVarArgFunc: false
55   localFrameSize:  0
56   savePoint:       ''
57   restorePoint:    ''
58 fixedStack:      []
59 stack:           []
60 callSites:       []
61 constants:       []
62 machineFunctionInfo: {}
63 body:             |
64   bb.0.entry:
65     successors: %bb.1(0x40000000), %bb.2(0x40000000)
66     liveins: $r0, $r1
68     %1:intregs = COPY $r1
69     %2:predregs = S2_tstbit_i %1, 0
70     %0:intregs = COPY $r0
71     J2_jumpf %2, %bb.2, implicit-def dead $pc
72     J2_jump %bb.1, implicit-def dead $pc
74   bb.1.if:
75     successors: %bb.2(0x80000000)
76     S4_storeiri_io %0, 0, 1 :: (store 4 into %ir.p)
78   bb.2.endif:
79     PS_jmpret $r31, implicit-def dead $pc
81 ...