1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mcpu=pwr9 -mtriple=powerpc64le-unknown-unknown -run-pass ppc-pre-emit-peephole %s -o - | FileCheck %s 3 4--- 5name: t1 6alignment: 16 7tracksRegLiveness: true 8machineFunctionInfo: {} 9body: | 10 bb.0.entry: 11 liveins: $x1 12 13 ; CHECK-LABEL: name: t1 14 ; CHECK: liveins: $x1 15 ; CHECK: renamable $x3 = LI8 0 16 ; CHECK: STD renamable $x3, 16, $x1 17 ; CHECK: STD killed renamable $x3, 8, $x1 18 ; CHECK: BLR8 implicit $lr8, implicit $rm 19 renamable $x3 = LI8 0 20 STD killed renamable $x3, 16, $x1 21 renamable $x3 = LI8 0 22 STD killed renamable $x3, 8, $x1 23 BLR8 implicit $lr8, implicit $rm 24 25... 26--- 27name: t2 28alignment: 16 29tracksRegLiveness: true 30machineFunctionInfo: {} 31body: | 32 bb.0.entry: 33 liveins: $x1 34 35 ; CHECK-LABEL: name: t2 36 ; CHECK: liveins: $x1 37 ; CHECK: renamable $x3 = LI8 0 38 ; CHECK: STD renamable $x3, 32, $x1 39 ; CHECK: STD renamable $x3, 24, $x1 40 ; CHECK: STD renamable $x3, 16, $x1 41 ; CHECK: STD killed renamable $x3, 8, $x1 42 ; CHECK: BLR8 implicit $lr8, implicit $rm 43 renamable $x3 = LI8 0 44 STD killed renamable $x3, 32, $x1 45 renamable $x3 = LI8 0 46 STD killed renamable $x3, 24, $x1 47 renamable $x3 = LI8 0 48 STD killed renamable $x3, 16, $x1 49 renamable $x3 = LI8 0 50 STD killed renamable $x3, 8, $x1 51 BLR8 implicit $lr8, implicit $rm 52 53... 54--- 55name: t3 56alignment: 16 57tracksRegLiveness: true 58machineFunctionInfo: {} 59body: | 60 bb.0.entry: 61 liveins: $x1 62 63 ; CHECK-LABEL: name: t3 64 ; CHECK: liveins: $x1 65 ; CHECK: renamable $x3 = LI8 0 66 ; CHECK: STD renamable $x3, 32, $x1 67 ; CHECK: STD renamable $x3, 24, $x1 68 ; CHECK: BLR8 implicit $lr8, implicit $rm 69 renamable $x3 = LI8 0 70 STD killed renamable $x3, 32, $x1 71 renamable $x3 = LI8 0 72 STD renamable $x3, 24, $x1 73 BLR8 implicit $lr8, implicit $rm 74 75... 76--- 77name: t4 78alignment: 16 79tracksRegLiveness: true 80machineFunctionInfo: {} 81body: | 82 bb.0.entry: 83 liveins: $x1 84 85 ; CHECK-LABEL: name: t4 86 ; CHECK: liveins: $x1 87 ; CHECK: renamable $x3 = LI8 0 88 ; CHECK: STD renamable $x3, 16, $x1 89 ; CHECK: renamable $x4 = ADDI8 renamable $x3, 8 90 ; CHECK: STD killed renamable $x3, 8, $x1 91 ; CHECK: BLR8 implicit $lr8, implicit $rm 92 renamable $x3 = LI8 0 93 STD killed renamable $x3, 16, $x1 94 renamable $x3 = LI8 0 95 renamable $x4 = ADDI8 killed renamable $x3, 8 96 renamable $x3 = LI8 0 97 STD killed renamable $x3, 8, $x1 98 BLR8 implicit $lr8, implicit $rm 99 100... 101--- 102name: t5 103alignment: 16 104tracksRegLiveness: true 105machineFunctionInfo: {} 106body: | 107 bb.0.entry: 108 liveins: $x1 109 110 ; CHECK-LABEL: name: t5 111 ; CHECK: liveins: $x1 112 ; CHECK: renamable $r3 = LI 0 113 ; CHECK: STW renamable $r3, 16, $x1 114 ; CHECK: STW killed renamable $r3, 12, $x1 115 ; CHECK: renamable $r3 = LI 1 116 ; CHECK: BLR8 implicit $lr8, implicit $rm 117 renamable $r3 = LI 0 118 STW killed renamable $r3, 16, $x1 119 renamable $r3 = LI 0 120 STW killed renamable $r3, 12, $x1 121 renamable $r3 = LI 1 122 BLR8 implicit $lr8, implicit $rm 123 124... 125--- 126name: t6 127alignment: 16 128tracksRegLiveness: true 129machineFunctionInfo: {} 130body: | 131 bb.0.entry: 132 liveins: $x1 133 134 ; CHECK-LABEL: name: t6 135 ; CHECK: liveins: $x1 136 ; CHECK: renamable $x3 = LI8 0 137 ; CHECK: renamable $x4 = LI8 1 138 ; CHECK: STD renamable $x3, 32, $x1 139 ; CHECK: STD renamable $x4, 24, $x1 140 ; CHECK: STD killed renamable $x3, 16, $x1 141 ; CHECK: STD killed renamable $x4, 8, $x1 142 ; CHECK: BLR8 implicit $lr8, implicit $rm 143 renamable $x3 = LI8 0 144 renamable $x4 = LI8 1 145 STD killed renamable $x3, 32, $x1 146 STD killed renamable $x4, 24, $x1 147 renamable $x3 = LI8 0 148 renamable $x4 = LI8 1 149 STD killed renamable $x3, 16, $x1 150 STD killed renamable $x4, 8, $x1 151 BLR8 implicit $lr8, implicit $rm 152 153... 154--- 155name: t7 156alignment: 16 157tracksRegLiveness: true 158machineFunctionInfo: {} 159body: | 160 bb.0.entry: 161 liveins: $x1, $x4 162 163 ; CHECK-LABEL: name: t7 164 ; CHECK: liveins: $x1, $x4 165 ; CHECK: renamable $x3 = LI8 0 166 ; CHECK: STD killed renamable $x3, 32, $x1 167 ; CHECK: renamable $x3 = ADDI8 $x4, 6 168 ; CHECK: BLR8 implicit $lr8, implicit $rm 169 renamable $x3 = LI8 0 170 STD killed renamable $x3, 32, $x1 171 renamable $x3 = ADDI8 $x4, 6 172 BLR8 implicit $lr8, implicit $rm 173 174... 175--- 176name: t8 177alignment: 16 178tracksRegLiveness: true 179machineFunctionInfo: {} 180body: | 181 bb.0.entry: 182 liveins: $x1 183 184 ; CHECK-LABEL: name: t8 185 ; CHECK: liveins: $x1 186 ; CHECK: renamable $x3 = LI8 0 187 ; CHECK: STD renamable $x3, 32, $x1 188 ; CHECK: BLR8 implicit $lr8, implicit $rm 189 renamable $x3 = LI8 0 190 STD killed renamable $x3, 32, $x1 191 renamable $x3 = LI8 0 192 BLR8 implicit $lr8, implicit $rm 193 194... 195--- 196name: t9 197alignment: 16 198tracksRegLiveness: true 199machineFunctionInfo: {} 200body: | 201 ; CHECK-LABEL: name: t9 202 ; CHECK: bb.0.entry: 203 ; CHECK: successors: %bb.2(0x40000000), %bb.1(0x40000000) 204 ; CHECK: liveins: $x3 205 ; CHECK: renamable $r4 = LI 0, implicit-def $x4 206 ; CHECK: renamable $x24 = RLDICL renamable $x4, 0, 32 207 ; CHECK: renamable $cr0 = CMPLDI renamable $x3, 0 208 ; CHECK: BCC 68, killed renamable $cr0, %bb.1 209 ; CHECK: B %bb.2 210 ; CHECK: bb.1: 211 ; CHECK: liveins: $r4, $x1 212 ; CHECK: STW killed renamable $r4, 16, $x1 213 ; CHECK: BLR8 implicit $lr8, implicit $rm 214 ; CHECK: bb.2: 215 ; CHECK: liveins: $r4, $x1 216 ; CHECK: STW killed renamable $r4, 32, $x1 217 ; CHECK: BLR8 implicit $lr8, implicit $rm 218 bb.0.entry: 219 liveins: $x3 220 successors: %bb.8, %bb.7 221 222 renamable $r4 = LI 0, implicit-def $x4 223 renamable $x24 = RLDICL killed renamable $x4, 0 , 32 224 renamable $cr0 = CMPLDI renamable $x3, 0 225 renamable $r4 = LI 0 226 BCC 68, killed renamable $cr0, %bb.7 227 B %bb.8 228 229 bb.7: 230 liveins: $r4, $x1 231 STW killed renamable $r4, 16, $x1 232 BLR8 implicit $lr8, implicit $rm 233 234 bb.8: 235 liveins: $r4, $x1 236 STW killed renamable $r4, 32, $x1 237 BLR8 implicit $lr8, implicit $rm 238 239... 240--- 241name: t10 242alignment: 16 243tracksRegLiveness: true 244machineFunctionInfo: {} 245body: | 246 bb.0.entry: 247 liveins: $x1 248 249 ; CHECK-LABEL: name: t10 250 ; CHECK: liveins: $x1 251 ; CHECK: renamable $x3 = LI8 24 252 ; CHECK: STD killed renamable $x3, 16, $x1 253 ; CHECK: renamable $r3 = LI 0 254 ; CHECK: STW killed renamable $r3, 26, $x1 255 ; CHECK: BLR8 implicit $lr8, implicit $rm 256 renamable $x3 = LI8 24 257 STD killed renamable $x3, 16, $x1 258 renamable $r3 = LI 0 259 STW killed renamable $r3, 26, $x1 260 BLR8 implicit $lr8, implicit $rm 261 262... 263--- 264name: LIS8 265alignment: 16 266tracksRegLiveness: true 267machineFunctionInfo: {} 268body: | 269 bb.0.entry: 270 liveins: $x1 271 272 ; CHECK-LABEL: name: LIS8 273 ; CHECK: liveins: $x1 274 ; CHECK: renamable $x3 = LIS8 0 275 ; CHECK: STD renamable $x3, 16, $x1 276 ; CHECK: STD killed renamable $x3, 8, $x1 277 ; CHECK: BLR8 implicit $lr8, implicit $rm 278 renamable $x3 = LIS8 0 279 STD killed renamable $x3, 16, $x1 280 renamable $x3 = LIS8 0 281 STD killed renamable $x3, 8, $x1 282 BLR8 implicit $lr8, implicit $rm 283 284... 285--- 286name: LIS 287alignment: 16 288tracksRegLiveness: true 289machineFunctionInfo: {} 290body: | 291 bb.0.entry: 292 liveins: $x1 293 294 ; CHECK-LABEL: name: LIS 295 ; CHECK: liveins: $x1 296 ; CHECK: renamable $r3 = LIS 0 297 ; CHECK: STW renamable $r3, 16, $x1 298 ; CHECK: STW killed renamable $r3, 12, $x1 299 ; CHECK: BLR8 implicit $lr8, implicit $rm 300 renamable $r3 = LIS 0 301 STW killed renamable $r3, 16, $x1 302 renamable $r3 = LIS 0 303 STW killed renamable $r3, 12, $x1 304 BLR8 implicit $lr8, implicit $rm 305 306... 307--- 308name: modify_and_kill_the_reg_in_the_same_inst 309alignment: 16 310tracksRegLiveness: true 311machineFunctionInfo: {} 312body: | 313 bb.0.entry: 314 315 ; CHECK-LABEL: name: modify_and_kill_the_reg_in_the_same_inst 316 ; CHECK: renamable $x6 = LI8 1 317 ; CHECK: renamable $x6 = RLDICR killed renamable $x6, 44, 19 318 ; CHECK: BLR8 implicit $lr8, implicit $rm 319 renamable $x6 = LI8 1 320 renamable $x6 = RLDICR killed renamable $x6, 44, 19 321 BLR8 implicit $lr8, implicit $rm 322 323... 324--- 325name: dead_load_immediate_followed_by_a_redundancy 326alignment: 16 327tracksRegLiveness: true 328machineFunctionInfo: {} 329body: | 330 bb.0.entry: 331 liveins: $x1 332 333 ; CHECK-LABEL: name: dead_load_immediate_followed_by_a_redundancy 334 ; CHECK: liveins: $x1 335 ; CHECK: renamable $r3 = LI 128 336 ; CHECK: renamable $x4 = ADDI8 $x1, -128 337 ; CHECK: renamable $x5 = ADDI8 $x1, -128 338 ; CHECK: STW killed renamable $r3, 16, $x4 339 ; CHECK: BLR8 implicit $lr8, implicit $rm 340 dead renamable $r3 = LI 128 341 renamable $x4 = ADDI8 $x1, -128 342 dead renamable $r3 = LI 128 343 renamable $x5 = ADDI8 $x1, -128 344 renamable $r3 = LI 128 345 STW killed renamable $r3, 16, $x4 346 BLR8 implicit $lr8, implicit $rm 347 348... 349--- 350name: overwrite_reg_before_killed 351alignment: 16 352tracksRegLiveness: true 353machineFunctionInfo: {} 354body: | 355 bb.0.entry: 356 liveins: $x1 357 358 ; CHECK-LABEL: name: overwrite_reg_before_killed 359 ; CHECK: liveins: $x1 360 ; CHECK: renamable $x3 = LI8 0 361 ; CHECK: STD renamable $x3, 16, $x1 362 ; CHECK: STD killed renamable $x3, 8, $x1 363 ; CHECK: BLR8 implicit $lr8, implicit $rm 364 renamable $x3 = LI8 0 365 STD renamable $x3, 16, $x1 366 renamable $x3 = LI8 0 367 STD killed renamable $x3, 8, $x1 368 BLR8 implicit $lr8, implicit $rm 369 370... 371