brintos

brintos / llvm-project-archived public Read only

0
0
Text · 14.2 KiB · 07c5adf Raw
387 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52# RUN: llc -run-pass=aarch64-ldst-opt -verify-machineinstrs %s -o - | FileCheck %s3 4--- |5  target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"6  target triple = "aarch64-none-linux-gnu"7 8  ; Function Attrs: nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable vscale_range(1,16)9  define dso_local void @test(ptr noundef captures(none) %data) local_unnamed_addr #0 {10  entry:11    br i1 undef, label %while.cond.preheader, label %for.body.preheader12 13  for.body.preheader:                               ; preds = %entry14    br label %for.body15 16  while.cond.preheader.loopexit:                    ; preds = %for.body17    br label %while.cond.preheader18 19  while.cond.preheader:                             ; preds = %while.cond.preheader.loopexit, %entry20    br i1 undef, label %while.body.lr.ph.lr.ph, label %for.cond28.preheader21 22  while.body.lr.ph.lr.ph:                           ; preds = %while.cond.preheader23    br label %while.body.preheader24 25  for.body:                                         ; preds = %for.body, %for.body.preheader26    br i1 undef, label %for.body, label %while.cond.preheader.loopexit27 28  for.cond28.preheader:                             ; preds = %if.then, %if.end, %while.cond.preheader29    br i1 undef, label %for.end45, label %for.body36.preheader30 31  for.body36.preheader:                             ; preds = %for.cond28.preheader32    br label %for.body3633 34  while.body:                                       ; preds = %if.end, %while.body.preheader35    br i1 undef, label %if.end, label %if.then36 37  if.then:                                          ; preds = %while.body38    br i1 undef, label %while.body.preheader, label %for.cond28.preheader39 40  while.body.preheader:                             ; preds = %if.then, %while.body.lr.ph.lr.ph41    br label %while.body42 43  if.end:                                           ; preds = %while.body44    br i1 undef, label %for.cond28.preheader, label %while.body45 46  for.body36:                                       ; preds = %for.body36.preheader, %for.body3647    br i1 undef, label %for.body36, label %for.end4548 49  for.end45:                                        ; preds = %for.body36, %for.cond28.preheader50    ret void51  }52 53...54---55name:            test56alignment:       1657exposesReturnsTwice: false58legalized:       false59regBankSelected: false60selected:        false61failedISel:      false62tracksRegLiveness: true63hasWinCFI:       false64noPhis:          true65isSSA:           false66noVRegs:         true67hasFakeUses:     false68callsEHReturn:   false69callsUnwindInit: false70hasEHContTarget: false71hasEHScopes:     false72hasEHFunclets:   false73isOutlined:      false74debugInstrRef:   false75failsVerification: false76tracksDebugUserValues: true77registers:       []78liveins:79  - { reg: '$x0', virtual-reg: '' }80frameInfo:81  isFrameAddressTaken: false82  isReturnAddressTaken: false83  hasStackMap:     false84  hasPatchPoint:   false85  stackSize:       086  offsetAdjustment: 087  maxAlignment:    188  adjustsStack:    false89  hasCalls:        false90  stackProtector:  ''91  functionContext: ''92  maxCallFrameSize: 093  cvBytesOfCalleeSavedRegisters: 094  hasOpaqueSPAdjustment: false95  hasVAStart:      false96  hasMustTailInVarArgFunc: false97  hasTailCall:     false98  isCalleeSavedInfoValid: true99  localFrameSize:  0100  savePoint:       []101  restorePoint:    []102fixedStack:      []103stack:           []104entry_values:    []105callSites:       []106debugValueSubstitutions: []107constants:       []108machineFunctionInfo:109  hasRedZone:      false110body:             |111  ; CHECK-LABEL: name: test112  ; CHECK: bb.0.entry:113  ; CHECK-NEXT:   successors: %bb.1(0x40000000), %bb.5(0x40000000)114  ; CHECK-NEXT:   liveins: $x0115  ; CHECK-NEXT: {{  $}}116  ; CHECK-NEXT:   renamable $w8 = LDRBBui renamable $x0, 4117  ; CHECK-NEXT:   TBNZW killed renamable $w8, 3, %bb.5118  ; CHECK-NEXT: {{  $}}119  ; CHECK-NEXT: bb.1:120  ; CHECK-NEXT:   successors: %bb.2(0x80000000)121  ; CHECK-NEXT:   liveins: $x0122  ; CHECK-NEXT: {{  $}}123  ; CHECK-NEXT:   renamable $w11 = MOVZWi 1, 0124  ; CHECK-NEXT:   renamable $w9 = MOVZWi 1, 0125  ; CHECK-NEXT:   renamable $w8 = MOVZWi 2, 0, implicit-def $x8126  ; CHECK-NEXT: {{  $}}127  ; CHECK-NEXT: bb.2.while.cond.preheader:128  ; CHECK-NEXT:   successors: %bb.3(0x60000000), %bb.8(0x20000000)129  ; CHECK-NEXT:   liveins: $w9, $w11, $x0, $x8130  ; CHECK-NEXT: {{  $}}131  ; CHECK-NEXT:   dead $wzr = SUBSWri renamable $w11, 299, 0, implicit-def $nzcv132  ; CHECK-NEXT:   Bcc 8, %bb.8, implicit $nzcv133  ; CHECK-NEXT: {{  $}}134  ; CHECK-NEXT: bb.3.while.cond.preheader:135  ; CHECK-NEXT:   successors: %bb.4(0x55555555), %bb.8(0x2aaaaaab)136  ; CHECK-NEXT:   liveins: $w9, $x0, $x8137  ; CHECK-NEXT: {{  $}}138  ; CHECK-NEXT:   renamable $x10 = nuw ADDXrx renamable $x0, renamable $w9, 18139  ; CHECK-NEXT:   renamable $w11 = LDRWui renamable $x10, 0140  ; CHECK-NEXT:   TBZW killed renamable $w11, 3, %bb.8141  ; CHECK-NEXT: {{  $}}142  ; CHECK-NEXT: bb.4:143  ; CHECK-NEXT:   successors: %bb.14(0x80000000)144  ; CHECK-NEXT:   liveins: $w9, $x0, $x8, $x10145  ; CHECK-NEXT: {{  $}}146  ; CHECK-NEXT:   renamable $w9 = ORRWrs $wzr, killed renamable $w9, 0, implicit-def $x9147  ; CHECK-NEXT:   B %bb.14148  ; CHECK-NEXT: {{  $}}149  ; CHECK-NEXT: bb.5.for.body.preheader:150  ; CHECK-NEXT:   successors: %bb.6(0x80000000)151  ; CHECK-NEXT:   liveins: $x0152  ; CHECK-NEXT: {{  $}}153  ; CHECK-NEXT:   renamable $x10 = ADDXri renamable $x0, 8, 0154  ; CHECK-NEXT:   renamable $w9 = MOVZWi 1, 0155  ; CHECK-NEXT:   renamable $w12 = MOVZWi 2, 0, implicit-def $x12156  ; CHECK-NEXT:   $x11 = ORRXrs $xzr, $x10, 0157  ; CHECK-NEXT: {{  $}}158  ; CHECK-NEXT: bb.6.for.body:159  ; CHECK-NEXT:   successors: %bb.7(0x7e000000), %bb.2(0x02000000)160  ; CHECK-NEXT:   liveins: $w9, $x0, $x10, $x11, $x12161  ; CHECK-NEXT: {{  $}}162  ; CHECK-NEXT:   renamable $w8 = LDURWi renamable $x11, -4163  ; CHECK-NEXT:   STRWui killed renamable $w8, renamable $x11, 0164  ; CHECK-NEXT:   renamable $x8 = nuw nsw ADDXri renamable $x12, 2, 0165  ; CHECK-NEXT:   renamable $w9 = nuw nsw ADDWri killed renamable $w9, 1, 0166  ; CHECK-NEXT:   early-clobber renamable $x10, renamable $w13 = LDRBBpost killed renamable $x10, 4167  ; CHECK-NEXT:   TBZW killed renamable $w13, 3, %bb.2168  ; CHECK-NEXT: {{  $}}169  ; CHECK-NEXT: bb.7.for.body:170  ; CHECK-NEXT:   successors: %bb.6(0x7df7df7e), %bb.2(0x02082082)171  ; CHECK-NEXT:   liveins: $w9, $x0, $x8, $x10, $x11, $x12172  ; CHECK-NEXT: {{  $}}173  ; CHECK-NEXT:   renamable $x11 = ADDXri killed renamable $x11, 8, 0174  ; CHECK-NEXT:   dead $xzr = SUBSXri killed renamable $x12, 598, 0, implicit-def $nzcv175  ; CHECK-NEXT:   $x12 = ORRXrs $xzr, $x8, 0176  ; CHECK-NEXT:   Bcc 0, %bb.2, implicit $nzcv177  ; CHECK-NEXT:   B %bb.6178  ; CHECK-NEXT: {{  $}}179  ; CHECK-NEXT: bb.8.for.cond28.preheader:180  ; CHECK-NEXT:   successors: %bb.12(0x40000000), %bb.9(0x40000000)181  ; CHECK-NEXT:   liveins: $x0, $x8182  ; CHECK-NEXT: {{  $}}183  ; CHECK-NEXT:   renamable $w9 = LDRBBui renamable $x0, 4184  ; CHECK-NEXT:   TBZW killed renamable $w9, 3, %bb.12185  ; CHECK-NEXT: {{  $}}186  ; CHECK-NEXT: bb.9.for.body36.preheader:187  ; CHECK-NEXT:   successors: %bb.10(0x80000000)188  ; CHECK-NEXT:   liveins: $x0, $x8189  ; CHECK-NEXT: {{  $}}190  ; CHECK-NEXT:   renamable $w9 = MOVZWi 8, 0, implicit-def $x9191  ; CHECK-NEXT: {{  $}}192  ; CHECK-NEXT: bb.10.for.body36:193  ; CHECK-NEXT:   successors: %bb.11(0x7e000000), %bb.12(0x02000000)194  ; CHECK-NEXT:   liveins: $x0, $x8, $x9195  ; CHECK-NEXT: {{  $}}196  ; CHECK-NEXT:   renamable $w10 = SUBWri renamable $w8, 1, 0197  ; CHECK-NEXT:   renamable $w10 = LDRWroW renamable $x0, killed renamable $w10, 0, 1198  ; CHECK-NEXT:   early-clobber renamable $x8 = STRWpost killed renamable $w10, renamable $x8, 2199  ; CHECK-NEXT:   renamable $w10 = LDRBBroX renamable $x0, renamable $x9, 0, 0200  ; CHECK-NEXT:   TBZW killed renamable $w10, 3, %bb.12201  ; CHECK-NEXT: {{  $}}202  ; CHECK-NEXT: bb.11.for.body36:203  ; CHECK-NEXT:   successors: %bb.10(0x7df7df7e), %bb.12(0x02082082)204  ; CHECK-NEXT:   liveins: $x0, $x8, $x9205  ; CHECK-NEXT: {{  $}}206  ; CHECK-NEXT:   dead $xzr = SUBSXri renamable $x9, 1200, 0, implicit-def $nzcv207  ; CHECK-NEXT:   renamable $x9 = nuw nsw ADDXri killed renamable $x9, 4, 0208  ; CHECK-NEXT:   Bcc 1, %bb.10, implicit $nzcv209  ; CHECK-NEXT: {{  $}}210  ; CHECK-NEXT: bb.12.for.end45:211  ; CHECK-NEXT:   RET undef $lr212  ; CHECK-NEXT: {{  $}}213  ; CHECK-NEXT: bb.13.if.end:214  ; CHECK-NEXT:   successors: %bb.8(0x04000000), %bb.14(0x7c000000)215  ; CHECK-NEXT:   liveins: $x0, $x8, $x9, $x10216  ; CHECK-NEXT: {{  $}}217  ; CHECK-NEXT:   renamable $w11 = LDRBBui renamable $x10, 0218  ; CHECK-NEXT:   TBZW killed renamable $w11, 3, %bb.8219  ; CHECK-NEXT: {{  $}}220  ; CHECK-NEXT: bb.14.while.body:221  ; CHECK-NEXT:   successors: %bb.13(0x7c000000), %bb.15(0x04000000)222  ; CHECK-NEXT:   liveins: $x0, $x8, $x9, $x10223  ; CHECK-NEXT: {{  $}}224  ; CHECK-NEXT:   renamable $w11 = SUBWri renamable $w8, 1, 0225  ; CHECK-NEXT:   renamable $w11 = LDRWroW renamable $x0, killed renamable $w11, 0, 1226  ; CHECK-NEXT:   early-clobber renamable $x8 = STRWpost renamable $w11, renamable $x8, 2227  ; CHECK-NEXT:   TBZW killed renamable $w11, 2, %bb.13228  ; CHECK-NEXT: {{  $}}229  ; CHECK-NEXT: bb.15.if.then:230  ; CHECK-NEXT:   successors: %bb.16(0x7e000000), %bb.8(0x02000000)231  ; CHECK-NEXT:   liveins: $x0, $x9232  ; CHECK-NEXT: {{  $}}233  ; CHECK-NEXT:   renamable $w8 = LDRWui renamable $x0, 4234  ; CHECK-NEXT:   STRWroX killed renamable $w8, renamable $x0, renamable $x9, 0, 1235  ; CHECK-NEXT:   renamable $w8 = MOVZWi 3, 0, implicit-def $x8236  ; CHECK-NEXT:   dead $xzr = SUBSXri renamable $x9, 298, 0, implicit-def $nzcv237  ; CHECK-NEXT:   Bcc 8, %bb.8, implicit $nzcv238  ; CHECK-NEXT: {{  $}}239  ; CHECK-NEXT: bb.16.if.then:240  ; CHECK-NEXT:   successors: %bb.14(0x7df7df7e), %bb.8(0x02082082)241  ; CHECK-NEXT:   liveins: $x0, $x8, $x9242  ; CHECK-NEXT: {{  $}}243  ; CHECK-NEXT:   renamable $x9 = nuw nsw ADDXri killed renamable $x9, 1, 0244  ; CHECK-NEXT:   renamable $x10 = nuw ADDXrs renamable $x0, renamable $x9, 2245  ; CHECK-NEXT:   renamable $w11 = LDRWui renamable $x10, 0246  ; CHECK-NEXT:   TBZW killed renamable $w11, 3, %bb.8247  ; CHECK-NEXT:   B %bb.14248  bb.0.entry:249    successors: %bb.1(0x40000000), %bb.5(0x40000000)250    liveins: $x0251 252    renamable $w8 = LDRBBui renamable $x0, 4253    TBNZW killed renamable $w8, 3, %bb.5254 255  bb.1:256    successors: %bb.2(0x80000000)257    liveins: $x0258 259    renamable $w11 = MOVZWi 1, 0260    renamable $w9 = MOVZWi 1, 0261    renamable $w8 = MOVZWi 2, 0, implicit-def $x8262 263  bb.2.while.cond.preheader:264    successors: %bb.3(0x60000000), %bb.8(0x20000000)265    liveins: $w9, $w11, $x0, $x8266 267    dead $wzr = SUBSWri renamable $w11, 299, 0, implicit-def $nzcv268    Bcc 8, %bb.8, implicit $nzcv269 270  bb.3.while.cond.preheader:271    successors: %bb.4(0x55555555), %bb.8(0x2aaaaaab)272    liveins: $w9, $x0, $x8273 274    renamable $x10 = nuw ADDXrx renamable $x0, renamable $w9, 18275    renamable $w11 = LDRWui renamable $x10, 0276    TBZW killed renamable $w11, 3, %bb.8277 278  bb.4:279    successors: %bb.14(0x80000000)280    liveins: $w9, $x0, $x8, $x10281 282    renamable $w9 = ORRWrs $wzr, killed renamable $w9, 0, implicit-def $x9283    B %bb.14284 285  bb.5.for.body.preheader:286    successors: %bb.6(0x80000000)287    liveins: $x0288 289    renamable $x10 = ADDXri renamable $x0, 8, 0290    renamable $w9 = MOVZWi 1, 0291    renamable $w12 = MOVZWi 2, 0, implicit-def $x12292    $x11 = ORRXrs $xzr, $x10, 0293 294  bb.6.for.body:295    successors: %bb.7(0x7e000000), %bb.2(0x02000000)296    liveins: $w9, $x0, $x10, $x11, $x12297 298    renamable $w8 = LDURWi renamable $x11, -4299    STRWui killed renamable $w8, renamable $x11, 0300    renamable $x8 = nuw nsw ADDXri renamable $x12, 2, 0301    renamable $w9 = nuw nsw ADDWri killed renamable $w9, 1, 0302    early-clobber renamable $x10, renamable $w13 = LDRBBpost killed renamable $x10, 4303    TBZW killed renamable $w13, 3, %bb.2304 305  bb.7.for.body:306    successors: %bb.6(0x7df7df7e), %bb.2(0x02082082)307    liveins: $w9, $x0, $x8, $x10, $x11, $x12308 309    renamable $x11 = ADDXri killed renamable $x11, 8, 0310    dead $xzr = SUBSXri killed renamable $x12, 598, 0, implicit-def $nzcv311    $x12 = ORRXrs $xzr, $x8, 0312    Bcc 0, %bb.2, implicit $nzcv313    B %bb.6314 315  bb.8.for.cond28.preheader:316    successors: %bb.12(0x40000000), %bb.9(0x40000000)317    liveins: $x0, $x8318 319    renamable $w9 = LDRBBui renamable $x0, 4320    TBZW killed renamable $w9, 3, %bb.12321 322  bb.9.for.body36.preheader:323    successors: %bb.10(0x80000000)324    liveins: $x0, $x8325 326    renamable $w9 = MOVZWi 8, 0, implicit-def $x9327 328  bb.10.for.body36:329    successors: %bb.11(0x7e000000), %bb.12(0x02000000)330    liveins: $x0, $x8, $x9331 332    renamable $w10 = SUBWri renamable $w8, 1, 0333    renamable $w10 = LDRWroW renamable $x0, killed renamable $w10, 0, 1334    STRWui killed renamable $w10, renamable $x8, 0335    renamable $w10 = LDRBBroX renamable $x0, renamable $x9, 0, 0336    TBZW killed renamable $w10, 3, %bb.12337 338  bb.11.for.body36:339    successors: %bb.10(0x7df7df7e), %bb.12(0x02082082)340    liveins: $x0, $x8, $x9341 342    renamable $x8 = ADDXri renamable $x8, 2, 0, implicit killed $x8, implicit-def $x8343    dead $xzr = SUBSXri renamable $x9, 1200, 0, implicit-def $nzcv344    renamable $x9 = nuw nsw ADDXri killed renamable $x9, 4, 0345    Bcc 1, %bb.10, implicit $nzcv346 347  bb.12.for.end45:348    RET undef $lr349 350  bb.13.if.end:351    successors: %bb.8(0x04000000), %bb.14(0x7c000000)352    liveins: $x0, $x8, $x9, $x10353 354    renamable $x8 = ADDXri renamable $x8, 2, 0, implicit killed $x8, implicit-def $x8355    renamable $w11 = LDRBBui renamable $x10, 0356    TBZW killed renamable $w11, 3, %bb.8357 358  bb.14.while.body:359    successors: %bb.13(0x7c000000), %bb.15(0x04000000)360    liveins: $x0, $x8, $x9, $x10361 362    renamable $w11 = SUBWri renamable $w8, 1, 0363    renamable $w11 = LDRWroW renamable $x0, killed renamable $w11, 0, 1364    STRWui renamable $w11, renamable $x8, 0365    TBZW killed renamable $w11, 2, %bb.13366 367  bb.15.if.then:368    successors: %bb.16(0x7e000000), %bb.8(0x02000000)369    liveins: $x0, $x9370 371    renamable $w8 = LDRWui renamable $x0, 4372    STRWroX killed renamable $w8, renamable $x0, renamable $x9, 0, 1373    renamable $w8 = MOVZWi 3, 0, implicit-def $x8374    dead $xzr = SUBSXri renamable $x9, 298, 0, implicit-def $nzcv375    Bcc 8, %bb.8, implicit $nzcv376 377  bb.16.if.then:378    successors: %bb.14(0x7df7df7e), %bb.8(0x02082082)379    liveins: $x0, $x8, $x9380 381    renamable $x9 = nuw nsw ADDXri killed renamable $x9, 1, 0382    renamable $x10 = nuw ADDXrs renamable $x0, renamable $x9, 2383    renamable $w11 = LDRWui renamable $x10, 0384    TBZW killed renamable $w11, 3, %bb.8385    B %bb.14386...387