[MIParser] Set RegClassOrRegBank during instruction parsing
[llvm-complete.git] / test / CodeGen / PowerPC / convert-rr-to-ri-p9-vector.mir
blobab7b698d630e5aaa4999c407fb7c1df4a4da8a29
1 # RUN: llc -mcpu=pwr9 -mtriple=powerpc64-unknown-linux-gnu -start-after \ 
2 # RUN:   ppc-mi-peepholes -ppc-late-peephole %s -o - | FileCheck %s 
4 ---
5 name:            testLXSSPX
6 alignment:       16
7 exposesReturnsTwice: false
8 legalized:       false
9 regBankSelected: false
10 selected:        false
11 tracksRegLiveness: true
12 registers:
13   - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }
14   - { id: 1, class: g8rc, preferred-register: '' }
15   - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }
16   - { id: 3, class: gprc, preferred-register: '' }
17   - { id: 4, class: g8rc, preferred-register: '' }
18   - { id: 5, class: g8rc, preferred-register: '' }
19   - { id: 6, class: g8rc, preferred-register: '' }
20   - { id: 7, class: vssrc, preferred-register: '' }
21   - { id: 8, class: gprc, preferred-register: '' }
22   - { id: 9, class: g8rc, preferred-register: '' }
23   - { id: 10, class: g8rc, preferred-register: '' }
24   - { id: 11, class: g8rc, preferred-register: '' }
25   - { id: 12, class: vssrc, preferred-register: '' }
26   - { id: 13, class: vssrc, preferred-register: '' }
27 liveins:
28   - { reg: '$x3', virtual-reg: '%0' }
29   - { reg: '$x4', virtual-reg: '%1' }
30 body:             |
31   bb.0.entry:
32     liveins: $x3, $x4
34     %1 = COPY $x4
35     %0 = COPY $x3
36     %2 = COPY %1.sub_32
37     %3 = ADDI %2, 1
38     %5 = IMPLICIT_DEF
39     %4 = INSERT_SUBREG %5, killed %3, 1
40     %6 = LI8 97
41     %7 = LXSSPX %0, killed %6, implicit $rm
42     ; CHECK:  lfs [[REG1:[0-9]+]], 97(3)
43     %8 = ADDI %2, 2
44     %10 = IMPLICIT_DEF
45     %9 = INSERT_SUBREG %10, killed %8, 1
46     %11 = LI8 -92
47     %12 = LXSSPX %0, killed %11, implicit $rm
48     ; CHECK-NEXT:  lfs [[REG2:[0-9]+]], -92(3)
49     %13 = XSADDSP killed %7, killed %12
50     ; CHECK-NEXT:  xsaddsp {{[0-9]+}}, [[REG1]], [[REG2]]
51     $f1 = COPY %13
52     BLR8 implicit $lr8, implicit $rm, implicit $f1
53 ...
56 ---
57 name:            testLXSDX
58 tracksRegLiveness: true
59 registers:       
60   - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }
61   - { id: 1, class: g8rc, preferred-register: '' }
62   - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }
63   - { id: 3, class: gprc, preferred-register: '' }
64   - { id: 4, class: g8rc, preferred-register: '' }
65   - { id: 5, class: g8rc, preferred-register: '' }
66   - { id: 6, class: g8rc, preferred-register: '' }
67   - { id: 7, class: vsfrc, preferred-register: '' }
68   - { id: 8, class: gprc, preferred-register: '' }
69   - { id: 9, class: g8rc, preferred-register: '' }
70   - { id: 10, class: g8rc, preferred-register: '' }
71   - { id: 11, class: g8rc, preferred-register: '' }
72   - { id: 12, class: vsfrc, preferred-register: '' }
73   - { id: 13, class: vsfrc, preferred-register: '' }
74 liveins:         
75   - { reg: '$x3', virtual-reg: '%0' }
76   - { reg: '$x4', virtual-reg: '%1' }
77 body:             |
78   bb.0.entry:
79     liveins: $x3, $x4
80   
81     %1 = COPY $x4
82     %0 = COPY $x3
83     %2 = COPY %1.sub_32
84     %3 = ADDI %2, 1
85     %5 = IMPLICIT_DEF
86     %4 = INSERT_SUBREG %5, killed %3, 1
87     %6 = LI8 99
88     %7 = LXSDX %0, killed %6, implicit $rm
89     ; CHECK:  lfd [[REG1:[0-9]+]], 99(3)
90     %8 = ADDI %2, 2
91     %10 = IMPLICIT_DEF
92     %9 = INSERT_SUBREG %10, killed %8, 1
93     %11 = LI8 -120
94     %12 = LXSDX %0, killed %11, implicit $rm
95     ; CHECK-NEXT:  lfd [[REG2:[0-9]+]], -120(3)
96     %13 = XSADDDP killed %7, killed %12, implicit $rm
97     ; CHECK-NEXT:  xsadddp {{[0-9]+}}, [[REG1]], [[REG2]]
98     $f1 = COPY %13
99     BLR8 implicit $lr8, implicit $rm, implicit $f1
104 name:            testSTXSSPX
105 alignment:       16
106 exposesReturnsTwice: false
107 legalized:       false
108 regBankSelected: false
109 selected:        false
110 tracksRegLiveness: true
111 registers:
112   - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }
113   - { id: 1, class: vssrc, preferred-register: '' }
114   - { id: 2, class: g8rc, preferred-register: '' }
115   - { id: 3, class: g8rc, preferred-register: '' }
116 liveins:
117   - { reg: '$x3', virtual-reg: '%0' }
118   - { reg: '$f1', virtual-reg: '%1' }
119   - { reg: '$x5', virtual-reg: '%2' }
120 body:             |
121   bb.0.entry:
122     liveins: $x3, $f1, $x5
124     %2 = COPY $x5
125     %1 = COPY $f1
126     %0 = COPY $x3
127     %3 = LI8 443
128     STXSSPX %1, %0, killed %3, implicit $rm
129     ; CHECK: stfs {{[0-9]+}}, 443(3)
130     BLR8 implicit $lr8, implicit $rm
135 name:            testSTXSDX
136 alignment:       16
137 exposesReturnsTwice: false
138 legalized:       false
139 regBankSelected: false
140 selected:        false
141 tracksRegLiveness: true
142 registers:
143   - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }
144   - { id: 1, class: vsfrc, preferred-register: '' }
145   - { id: 2, class: g8rc, preferred-register: '' }
146   - { id: 3, class: g8rc, preferred-register: '' }
147 liveins:
148   - { reg: '$x3', virtual-reg: '%0' }
149   - { reg: '$f1', virtual-reg: '%1' }
150   - { reg: '$x5', virtual-reg: '%2' }
151 body:             |
152   bb.0.entry:
153     liveins: $x3, $f1, $x5
155     %2 = COPY $x5
156     %1 = COPY $f1
157     %0 = COPY $x3
158     %3 = LI8  7
159     STXSDX %1, %0, killed %3, implicit $rm
160     ; CHECK: stfd {{[0-9]+}}, 7(3)
161     BLR8 implicit $lr8, implicit $rm