210 lines · plain
1# RUN: llc -mtriple=aarch64-unknown-fuchsia -run-pass=greedy -verify-machineinstrs -o - %s | FileCheck %s2# RUN: llc -mtriple=aarch64-unknown-fuchsia -passes=greedy -verify-machineinstrs -o - %s | FileCheck %s3 4# Check that we spill %31 and do not rematerialize it since the use operand5# of ADDXri is killed by the STRXui in this block.6 7# CHECK-LABEL: name: test8# CHECK: bb.17:9# CHECK: STRXui10# CHECK: LDRXui11# CHECK: bb.18:12 13---14name: test15tracksRegLiveness: true16stack:17 - { id: 0, type: variable-sized, offset: 0, alignment: 32,18 stack-id: default }19body: |20 bb.0.entry:21 successors: %bb.2(0x40000000), %bb.1(0x40000000)22 liveins: $x023 24 %22:gpr64common = COPY $x025 CBZW $wzr, %bb.226 27 bb.1:28 successors: %bb.3(0x80000000)29 30 %1:gpr64 = COPY $xzr31 B %bb.332 33 bb.2:34 successors: %bb.3(0x80000000)35 36 $x0 = IMPLICIT_DEF37 %1:gpr64 = COPY $x038 39 bb.3:40 successors: %bb.4(0x30000000), %bb.5(0x50000000)41 42 %2:gpr64common = COPY %143 CBNZX %1, %bb.544 B %bb.445 46 bb.4:47 successors: %bb.5(0x80000000)48 49 %31:gpr64common = SUBXri $sp, 288, 050 $sp = ANDXri %31, 793051 %2:gpr64common = COPY $xzr52 53 bb.5:54 successors: %bb.6(0x80000000)55 56 %9:gpr64common = COPY $xzr57 %35:gpr64sp = ADDXri %2, 32, 058 %4:gpr64common = UBFMXri %2, 3, 6359 %37:gpr64 = MOVi64imm -50638120986653671260 %38:gpr32 = MOVi32imm -20211610961 %39:gpr64common = nuw ADDXri %22, 836, 062 %41:gpr64common = nuw ADDXri %22, 648, 063 STRXui %37, %4, 164 STRWui %38, %4, 865 %8:gpr64common = UBFMXri %39, 3, 6366 %7:gpr64common = UBFMXri %41, 3, 6367 %47:gpr64 = MOVi64imm 068 69 bb.6:70 successors: %bb.8(0x30000000), %bb.7(0x50000000)71 72 %44:gpr64common = ADDXrr %22, %973 %10:gpr64common = ADDXri %44, 648, 074 %11:gpr64common = ANDSXri %10, 4098, implicit-def $nzcv75 Bcc 0, %bb.8, implicit killed $nzcv76 B %bb.777 78 bb.7:79 successors: %bb.8(0x80000000)80 81 BL 0, csr_aarch64_aapcs, implicit-def dead $lr82 83 bb.8:84 successors: %bb.9(0x04000000), %bb.24(0x7c000000)85 86 CBNZW $wzr, %bb.2487 B %bb.988 89 bb.9:90 successors: %bb.10(0x7ffff800), %bb.11(0x00000800)91 92 %55:gpr64common = ADDXrr %22, %993 %56:gpr64sp = ADDXri %55, 648, 094 CBZX %11, %bb.1095 B %bb.1196 97 bb.10:98 successors: %bb.11(0x80000000)99 100 $x0 = ADDXri %55, 648, 0101 $x2 = IMPLICIT_DEF102 $w1 = COPY $wzr103 $x1 = nuw ADDXri %35, 32, 0104 BL 0, csr_aarch64_aapcs, implicit-def dead $lr105 %66:gpr64sp = nuw ADDXri %35, 48, 0106 $x0 = ADDXri %55, 696, 0107 $x2 = IMPLICIT_DEF108 $x1 = COPY %66109 110 bb.11:111 successors: %bb.15(0x7ffff800), %bb.12(0x00000800)112 113 CBZX %11, %bb.15114 B %bb.12115 116 bb.12:117 successors: %bb.13(0x00000000), %bb.14(0x80000000)118 119 CBNZW $wzr, %bb.14120 B %bb.13121 122 bb.13:123 successors:124 125 bb.14:126 successors: %bb.18(0x80000000)127 128 $x1 = COPY %56129 B %bb.18130 131 bb.15:132 successors: %bb.16(0x00000000), %bb.17(0x80000000)133 134 %76:gpr32 = LDRBBui %7, 0135 CBZW %76, %bb.17136 B %bb.16137 138 bb.16:139 successors:140 141 %74:gpr64common = ADDXrr %22, %9142 %15:gpr64sp = ADDXri %74, 648, 0143 $x0 = COPY %15144 145 bb.17:146 successors: %bb.18(0x80000000)147 148 STRXui %22, %55, 81149 150 bb.18:151 successors: %bb.19(0x80000000), %bb.20(0x00000000)152 153 %79:gpr32 = LDRBBui %8, 0154 CBNZW %79, %bb.20155 B %bb.19156 157 bb.19:158 successors: %bb.21(0x80000000), %bb.20(0x00000000)159 160 %80:gpr32 = MOVi32imm 1161 CBNZW %80, %bb.21162 B %bb.20163 164 bb.20:165 successors:166 167 %16:gpr64sp = ADDXri %22, 836, 0168 $x0 = COPY %16169 170 bb.21:171 successors: %bb.24(0x00000000), %bb.22(0x80000000)172 173 CBZW $wzr, %bb.24174 175 bb.22:176 successors: %bb.26(0x80000000)177 178 B %bb.26179 180 bb.24:181 successors: %bb.25(0x04000000), %bb.6(0x7c000000)182 183 %8:gpr64common = ADDXri %8, 24, 0184 %7:gpr64common = ADDXri %7, 24, 0185 CBNZW $wzr, %bb.6186 187 bb.25:188 successors: %bb.26(0x80000000)189 190 %56:gpr64sp = COPY $xzr191 192 bb.26:193 successors: %bb.28(0x50000000), %bb.27(0x30000000)194 195 undef %83.sub_32:gpr64 = MOVi32imm 1172321806196 STRXui %83, %2, 0197 CBNZX %1, %bb.28198 B %bb.27199 200 bb.27:201 successors: %bb.28(0x80000000)202 203 STRXui $xzr, %4, 0204 205 bb.28:206 $x0 = COPY %56207 RET_ReallyLR implicit $x0208 209...210