[RISCV] Add shrinkwrap test cases showing gaps in current impl
[llvm-project.git] / llvm / test / CodeGen / VE / Scalar / fold-imm-addsl.mir
bloba3e374a46dc94fd1004be1ae4a7a275ffefe1ace
1 # RUN: llc -mtriple=ve -verify-machineinstrs -run-pass peephole-opt -o - %s | FileCheck %s
3 ---
4 ## Ensure fold immediate as simm7 at rhs
5 #CHECK-LABEL: name: addsl_ri
6 #CHECK: %2:i64 = nsw ADDSLri %0, 5
7 name:            addsl_ri
8 alignment:       16
9 exposesReturnsTwice: false
10 legalized:       false
11 regBankSelected: false
12 selected:        false
13 failedISel:      false
14 tracksRegLiveness: true
15 hasWinCFI:       false
16 registers:
17   - { id: 0, class: i64, preferred-register: '' }
18   - { id: 1, class: i64, preferred-register: '' }
19 liveins:
20   - { reg: '$sx0', virtual-reg: '%0' }
21 frameInfo:
22   isFrameAddressTaken: false
23   isReturnAddressTaken: false
24   hasStackMap:     false
25   hasPatchPoint:   false
26   stackSize:       0
27   offsetAdjustment: 0
28   maxAlignment:    8
29   adjustsStack:    false
30   hasCalls:        false
31   stackProtector:  ''
32   maxCallFrameSize: 4294967295
33   cvBytesOfCalleeSavedRegisters: 0
34   hasOpaqueSPAdjustment: false
35   hasVAStart:      false
36   hasMustTailInVarArgFunc: false
37   localFrameSize:  0
38   savePoint:       ''
39   restorePoint:    ''
40 fixedStack:      []
41 stack:           []
42 callSites:       []
43 debugValueSubstitutions: []
44 constants:       []
45 machineFunctionInfo: {}
46 body:             |
47   bb.0:
48     liveins: $sx0
50     %0:i64 = COPY $sx0
51     %1:i64 = ORim 5, 0
52     %2:i64 = nsw ADDSLrr %0, %1
53     $sx0 = COPY %2
54     RET implicit $sx10, implicit $sx0
56 ...
58 ---
59 ## Ensure fold immediate as mimm at rhs
60 #CHECK-LABEL: name: addsl_rm
61 #CHECK: %2:i64 = nsw ADDSLrm %0, 120
62 name:            addsl_rm
63 alignment:       16
64 exposesReturnsTwice: false
65 legalized:       false
66 regBankSelected: false
67 selected:        false
68 failedISel:      false
69 tracksRegLiveness: true
70 hasWinCFI:       false
71 registers:
72   - { id: 0, class: i64, preferred-register: '' }
73   - { id: 1, class: i64, preferred-register: '' }
74 liveins:
75   - { reg: '$sx0', virtual-reg: '%0' }
76 frameInfo:
77   isFrameAddressTaken: false
78   isReturnAddressTaken: false
79   hasStackMap:     false
80   hasPatchPoint:   false
81   stackSize:       0
82   offsetAdjustment: 0
83   maxAlignment:    8
84   adjustsStack:    false
85   hasCalls:        false
86   stackProtector:  ''
87   maxCallFrameSize: 4294967295
88   cvBytesOfCalleeSavedRegisters: 0
89   hasOpaqueSPAdjustment: false
90   hasVAStart:      false
91   hasMustTailInVarArgFunc: false
92   localFrameSize:  0
93   savePoint:       ''
94   restorePoint:    ''
95 fixedStack:      []
96 stack:           []
97 callSites:       []
98 debugValueSubstitutions: []
99 constants:       []
100 machineFunctionInfo: {}
101 body:             |
102   bb.0:
103     liveins: $sx0
105     %0:i64 = COPY $sx0
106     %1:i64 = ORim 0, 120
107     %2:i64 = nsw ADDSLrr %0, %1
108     $sx0 = COPY %2
109     RET implicit $sx10, implicit $sx0
114 ## Ensure fold immediate as simm7 at lhs
115 #CHECK-LABEL: name: addsl_ri_com
116 #CHECK: %2:i64 = nsw ADDSLri %0, 5
117 name:            addsl_ri_com
118 alignment:       16
119 exposesReturnsTwice: false
120 legalized:       false
121 regBankSelected: false
122 selected:        false
123 failedISel:      false
124 tracksRegLiveness: true
125 hasWinCFI:       false
126 registers:
127   - { id: 0, class: i64, preferred-register: '' }
128   - { id: 1, class: i64, preferred-register: '' }
129 liveins:
130   - { reg: '$sx0', virtual-reg: '%0' }
131 frameInfo:
132   isFrameAddressTaken: false
133   isReturnAddressTaken: false
134   hasStackMap:     false
135   hasPatchPoint:   false
136   stackSize:       0
137   offsetAdjustment: 0
138   maxAlignment:    8
139   adjustsStack:    false
140   hasCalls:        false
141   stackProtector:  ''
142   maxCallFrameSize: 4294967295
143   cvBytesOfCalleeSavedRegisters: 0
144   hasOpaqueSPAdjustment: false
145   hasVAStart:      false
146   hasMustTailInVarArgFunc: false
147   localFrameSize:  0
148   savePoint:       ''
149   restorePoint:    ''
150 fixedStack:      []
151 stack:           []
152 callSites:       []
153 debugValueSubstitutions: []
154 constants:       []
155 machineFunctionInfo: {}
156 body:             |
157   bb.0:
158     liveins: $sx0
160     %0:i64 = COPY $sx0
161     %1:i64 = ORim 5, 0
162     %2:i64 = nsw ADDSLrr %1, %0
163     $sx0 = COPY %2
164     RET implicit $sx10, implicit $sx0
169 ## Ensure fold immediate as mimm at rhs
170 #CHECK-LABEL: name: addsl_rm_com
171 #CHECK: %2:i64 = nsw ADDSLrm %0, 120
172 name:            addsl_rm_com
173 alignment:       16
174 exposesReturnsTwice: false
175 legalized:       false
176 regBankSelected: false
177 selected:        false
178 failedISel:      false
179 tracksRegLiveness: true
180 hasWinCFI:       false
181 registers:
182   - { id: 0, class: i64, preferred-register: '' }
183   - { id: 1, class: i64, preferred-register: '' }
184 liveins:
185   - { reg: '$sx0', virtual-reg: '%0' }
186 frameInfo:
187   isFrameAddressTaken: false
188   isReturnAddressTaken: false
189   hasStackMap:     false
190   hasPatchPoint:   false
191   stackSize:       0
192   offsetAdjustment: 0
193   maxAlignment:    8
194   adjustsStack:    false
195   hasCalls:        false
196   stackProtector:  ''
197   maxCallFrameSize: 4294967295
198   cvBytesOfCalleeSavedRegisters: 0
199   hasOpaqueSPAdjustment: false
200   hasVAStart:      false
201   hasMustTailInVarArgFunc: false
202   localFrameSize:  0
203   savePoint:       ''
204   restorePoint:    ''
205 fixedStack:      []
206 stack:           []
207 callSites:       []
208 debugValueSubstitutions: []
209 constants:       []
210 machineFunctionInfo: {}
211 body:             |
212   bb.0:
213     liveins: $sx0
215     %0:i64 = COPY $sx0
216     %1:i64 = ORim 0, 120
217     %2:i64 = nsw ADDSLrr %1, %0
218     $sx0 = COPY %2
219     RET implicit $sx10, implicit $sx0