241 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 22# RUN: llc -mtriple aarch64 -run-pass=aarch64-prelegalizer-combiner -verify-machineinstrs %s -o - | FileCheck %s3---4name: cfb_lhs5tracksRegLiveness: true6body: |7 bb.1:8 liveins: $w09 10 ; CHECK-LABEL: name: cfb_lhs11 ; CHECK: liveins: $w012 ; CHECK-NEXT: {{ $}}13 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w014 ; CHECK-NEXT: %cst:_(s32) = G_CONSTANT i32 115 ; CHECK-NEXT: %cfb:_(s32) = G_CONSTANT_FOLD_BARRIER %cst16 ; CHECK-NEXT: %add:_(s32) = G_ADD [[COPY]], %cfb17 ; CHECK-NEXT: $w0 = COPY %add(s32)18 ; CHECK-NEXT: RET_ReallyLR19 %0:_(s32) = COPY $w020 %cst:_(s32) = G_CONSTANT i32 121 %cfb:_(s32) = G_CONSTANT_FOLD_BARRIER %cst22 %cst2:_(s32) = G_CONSTANT i32 223 %add:_(s32) = G_ADD %cfb, %024 $w0 = COPY %add25 RET_ReallyLR26 27...28---29name: cfb_lhs_cfb_already_rhs30tracksRegLiveness: true31body: |32 bb.1:33 liveins: $w034 35 ; CHECK-LABEL: name: cfb_lhs_cfb_already_rhs36 ; CHECK: liveins: $w037 ; CHECK-NEXT: {{ $}}38 ; CHECK-NEXT: %cst:_(s32) = G_CONSTANT i32 139 ; CHECK-NEXT: %cfb:_(s32) = G_CONSTANT_FOLD_BARRIER %cst40 ; CHECK-NEXT: %cst2:_(s32) = G_CONSTANT i32 241 ; CHECK-NEXT: %cfb2:_(s32) = G_CONSTANT_FOLD_BARRIER %cst242 ; CHECK-NEXT: %add:_(s32) = G_ADD %cfb, %cfb243 ; CHECK-NEXT: $w0 = COPY %add(s32)44 ; CHECK-NEXT: RET_ReallyLR45 %0:_(s32) = COPY $w046 %cst:_(s32) = G_CONSTANT i32 147 %cfb:_(s32) = G_CONSTANT_FOLD_BARRIER %cst48 %cst2:_(s32) = G_CONSTANT i32 249 %cfb2:_(s32) = G_CONSTANT_FOLD_BARRIER %cst250 %add:_(s32) = G_ADD %cfb, %cfb251 $w0 = COPY %add52 RET_ReallyLR53 54...55---56name: cfb_lhs_cst_on_rhs57alignment: 458tracksRegLiveness: true59body: |60 bb.1:61 liveins: $w062 63 ; CHECK-LABEL: name: cfb_lhs_cst_on_rhs64 ; CHECK: liveins: $w065 ; CHECK-NEXT: {{ $}}66 ; CHECK-NEXT: %cst:_(s32) = G_CONSTANT i32 167 ; CHECK-NEXT: %cfb:_(s32) = G_CONSTANT_FOLD_BARRIER %cst68 ; CHECK-NEXT: %cst2:_(s32) = G_CONSTANT i32 269 ; CHECK-NEXT: %add:_(s32) = G_ADD %cfb, %cst270 ; CHECK-NEXT: $w0 = COPY %add(s32)71 ; CHECK-NEXT: RET_ReallyLR72 %0:_(s32) = COPY $w073 %cst:_(s32) = G_CONSTANT i32 174 %cfb:_(s32) = G_CONSTANT_FOLD_BARRIER %cst75 %cst2:_(s32) = G_CONSTANT i32 276 %add:_(s32) = G_ADD %cfb, %cst277 $w0 = COPY %add78 RET_ReallyLR79 80...81---82name: cfb_lhs_smulo83tracksRegLiveness: true84body: |85 bb.1:86 liveins: $w087 88 ; CHECK-LABEL: name: cfb_lhs_smulo89 ; CHECK: liveins: $w090 ; CHECK-NEXT: {{ $}}91 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w092 ; CHECK-NEXT: %cst:_(s32) = G_CONSTANT i32 193 ; CHECK-NEXT: %cfb:_(s32) = G_CONSTANT_FOLD_BARRIER %cst94 ; CHECK-NEXT: %mul:_(s32), %overflow:_(s1) = G_SMULO [[COPY]], %cfb95 ; CHECK-NEXT: %ret:_(s32) = G_ANYEXT %overflow(s1)96 ; CHECK-NEXT: $w0 = COPY %ret(s32)97 ; CHECK-NEXT: RET_ReallyLR98 %0:_(s32) = COPY $w099 %cst:_(s32) = G_CONSTANT i32 1100 %cfb:_(s32) = G_CONSTANT_FOLD_BARRIER %cst101 %mul:_(s32), %overflow:_(s1) = G_SMULO %cfb, %0102 %ret:_(s32) = G_ANYEXT %overflow103 $w0 = COPY %ret104 RET_ReallyLR105 106...107---108name: cfb_lhs_cfb_already_rhs_smulo109tracksRegLiveness: true110body: |111 bb.1:112 liveins: $w0113 114 ; CHECK-LABEL: name: cfb_lhs_cfb_already_rhs_smulo115 ; CHECK: liveins: $w0116 ; CHECK-NEXT: {{ $}}117 ; CHECK-NEXT: %cst:_(s32) = G_CONSTANT i32 1118 ; CHECK-NEXT: %cfb:_(s32) = G_CONSTANT_FOLD_BARRIER %cst119 ; CHECK-NEXT: %cst2:_(s32) = G_CONSTANT i32 6120 ; CHECK-NEXT: %cfb2:_(s32) = G_CONSTANT_FOLD_BARRIER %cst2121 ; CHECK-NEXT: %mul:_(s32), %overflow:_(s1) = G_SMULO %cfb, %cfb2122 ; CHECK-NEXT: %ret:_(s32) = G_ANYEXT %overflow(s1)123 ; CHECK-NEXT: $w0 = COPY %ret(s32)124 ; CHECK-NEXT: RET_ReallyLR125 %0:_(s32) = COPY $w0126 %cst:_(s32) = G_CONSTANT i32 1127 %cfb:_(s32) = G_CONSTANT_FOLD_BARRIER %cst128 %cst2:_(s32) = G_CONSTANT i32 6129 %cfb2:_(s32) = G_CONSTANT_FOLD_BARRIER %cst2130 %mul:_(s32), %overflow:_(s1) = G_SMULO %cfb, %cfb2131 %ret:_(s32) = G_ANYEXT %overflow132 $w0 = COPY %ret133 RET_ReallyLR134 135...136---137name: cfb_lhs_cst_on_rhs_smulo138alignment: 4139tracksRegLiveness: true140body: |141 bb.1:142 liveins: $w0143 144 ; CHECK-LABEL: name: cfb_lhs_cst_on_rhs_smulo145 ; CHECK: liveins: $w0146 ; CHECK-NEXT: {{ $}}147 ; CHECK-NEXT: %cst:_(s32) = G_CONSTANT i32 1148 ; CHECK-NEXT: %cfb:_(s32) = G_CONSTANT_FOLD_BARRIER %cst149 ; CHECK-NEXT: %cst2:_(s32) = G_CONSTANT i32 6150 ; CHECK-NEXT: %mul:_(s32), %overflow:_(s1) = G_SMULO %cfb, %cst2151 ; CHECK-NEXT: %ret:_(s32) = G_ANYEXT %overflow(s1)152 ; CHECK-NEXT: $w0 = COPY %ret(s32)153 ; CHECK-NEXT: RET_ReallyLR154 %0:_(s32) = COPY $w0155 %cst:_(s32) = G_CONSTANT i32 1156 %cfb:_(s32) = G_CONSTANT_FOLD_BARRIER %cst157 %cst2:_(s32) = G_CONSTANT i32 6158 %mul:_(s32), %overflow:_(s1) = G_SMULO %cfb, %cst2159 %ret:_(s32) = G_ANYEXT %overflow160 $w0 = COPY %ret161 RET_ReallyLR162 163...164---165name: cfb_lhs_umulfixsat166tracksRegLiveness: true167body: |168 bb.1:169 liveins: $w0170 171 ; CHECK-LABEL: name: cfb_lhs_umulfixsat172 ; CHECK: liveins: $w0173 ; CHECK-NEXT: {{ $}}174 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0175 ; CHECK-NEXT: %cst:_(s32) = G_CONSTANT i32 1176 ; CHECK-NEXT: %cfb:_(s32) = G_CONSTANT_FOLD_BARRIER %cst177 ; CHECK-NEXT: %mul:_(s32) = G_UMULFIXSAT [[COPY]], %cfb, 7178 ; CHECK-NEXT: $w0 = COPY %mul(s32)179 ; CHECK-NEXT: RET_ReallyLR180 %0:_(s32) = COPY $w0181 %cst:_(s32) = G_CONSTANT i32 1182 %cfb:_(s32) = G_CONSTANT_FOLD_BARRIER %cst183 %mul:_(s32) = G_UMULFIXSAT %cfb, %0, 7184 $w0 = COPY %mul185 RET_ReallyLR186 187...188---189name: cfb_lhs_cfb_already_rhs_umulfixsat190tracksRegLiveness: true191body: |192 bb.1:193 liveins: $w0194 195 ; CHECK-LABEL: name: cfb_lhs_cfb_already_rhs_umulfixsat196 ; CHECK: liveins: $w0197 ; CHECK-NEXT: {{ $}}198 ; CHECK-NEXT: %cst:_(s32) = G_CONSTANT i32 1199 ; CHECK-NEXT: %cfb:_(s32) = G_CONSTANT_FOLD_BARRIER %cst200 ; CHECK-NEXT: %cst2:_(s32) = G_CONSTANT i32 2201 ; CHECK-NEXT: %cfb2:_(s32) = G_CONSTANT_FOLD_BARRIER %cst2202 ; CHECK-NEXT: %add:_(s32) = G_UMULFIXSAT %cfb, %cfb2, 7203 ; CHECK-NEXT: $w0 = COPY %add(s32)204 ; CHECK-NEXT: RET_ReallyLR205 %0:_(s32) = COPY $w0206 %cst:_(s32) = G_CONSTANT i32 1207 %cfb:_(s32) = G_CONSTANT_FOLD_BARRIER %cst208 %cst2:_(s32) = G_CONSTANT i32 2209 %cfb2:_(s32) = G_CONSTANT_FOLD_BARRIER %cst2210 %add:_(s32) = G_UMULFIXSAT %cfb, %cfb2, 7211 $w0 = COPY %add212 RET_ReallyLR213 214...215---216name: cfb_lhs_cst_on_rhs_umulfixsat217alignment: 4218tracksRegLiveness: true219body: |220 bb.1:221 liveins: $w0222 223 ; CHECK-LABEL: name: cfb_lhs_cst_on_rhs_umulfixsat224 ; CHECK: liveins: $w0225 ; CHECK-NEXT: {{ $}}226 ; CHECK-NEXT: %cst:_(s32) = G_CONSTANT i32 1227 ; CHECK-NEXT: %cfb:_(s32) = G_CONSTANT_FOLD_BARRIER %cst228 ; CHECK-NEXT: %cst2:_(s32) = G_CONSTANT i32 2229 ; CHECK-NEXT: %add:_(s32) = G_UMULFIXSAT %cfb, %cst2, 7230 ; CHECK-NEXT: $w0 = COPY %add(s32)231 ; CHECK-NEXT: RET_ReallyLR232 %0:_(s32) = COPY $w0233 %cst:_(s32) = G_CONSTANT i32 1234 %cfb:_(s32) = G_CONSTANT_FOLD_BARRIER %cst235 %cst2:_(s32) = G_CONSTANT i32 2236 %add:_(s32) = G_UMULFIXSAT %cfb, %cst2, 7237 $w0 = COPY %add238 RET_ReallyLR239 240...241