217 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 42# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=amdgpu-postlegalizer-combiner -verify-machineinstrs %s -o - | FileCheck %s --check-prefixes=CHECK3 4---5name: test_neg_one_f16_sgpr6tracksRegLiveness: true7body: |8 bb.0:9 liveins: $sgpr010 11 ; CHECK-LABEL: name: test_neg_one_f16_sgpr12 ; CHECK: liveins: $sgpr013 ; CHECK-NEXT: {{ $}}14 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr015 ; CHECK-NEXT: %x:_(s16) = G_TRUNC [[COPY]](s32)16 ; CHECK-NEXT: %d:_(s16) = G_FNEG %x17 ; CHECK-NEXT: %ext:_(s32) = G_ANYEXT %d(s16)18 ; CHECK-NEXT: $sgpr0 = COPY %ext(s32)19 %0:_(s32) = COPY $sgpr020 %x:_(s16) = G_TRUNC %0:_(s32)21 %y:_(s16) = G_FCONSTANT half -1.022 %d:_(s16) = G_FMUL %x, %y23 %ext:_(s32) = G_ANYEXT %d:_(s16)24 $sgpr0 = COPY %ext25 26...27 28---29name: test_neg_one_f32_sgpr30body: |31 bb.0:32 liveins: $sgpr033 34 ; CHECK-LABEL: name: test_neg_one_f32_sgpr35 ; CHECK: liveins: $sgpr036 ; CHECK-NEXT: {{ $}}37 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr038 ; CHECK-NEXT: [[FNEG:%[0-9]+]]:_(s32) = G_FNEG [[COPY]]39 ; CHECK-NEXT: $sgpr0 = COPY [[FNEG]](s32)40 %0:_(s32) = COPY $sgpr041 %1:_(s32) = G_FCONSTANT float -1.042 %2:_(s32) = G_FMUL %0, %143 $sgpr0 = COPY %2(s32)44 45...46 47---48name: test_neg_one_f64_sgpr49tracksRegLiveness: true50body: |51 bb.0:52 liveins: $sgpr053 54 ; CHECK-LABEL: name: test_neg_one_f64_sgpr55 ; CHECK: liveins: $sgpr056 ; CHECK-NEXT: {{ $}}57 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr058 ; CHECK-NEXT: %x:_(s64) = G_ANYEXT [[COPY]](s32)59 ; CHECK-NEXT: %d:_(s64) = G_FNEG %x60 ; CHECK-NEXT: %ext:_(s32) = G_TRUNC %d(s64)61 ; CHECK-NEXT: $sgpr0 = COPY %ext(s32)62 %0:_(s32) = COPY $sgpr063 %x:_(s64) = G_ANYEXT %0:_(s32)64 %y:_(s64) = G_FCONSTANT double -1.065 %d:_(s64) = G_FMUL %x, %y66 %ext:_(s32) = G_TRUNC %d:_(s64)67 $sgpr0 = COPY %ext68 69...70 71---72name: test_neg_ten_f32_sgpr73body: |74 bb.0:75 liveins: $sgpr076 77 ; CHECK-LABEL: name: test_neg_ten_f32_sgpr78 ; CHECK: liveins: $sgpr079 ; CHECK-NEXT: {{ $}}80 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr081 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_FCONSTANT float -1.000000e+0182 ; CHECK-NEXT: [[FMUL:%[0-9]+]]:_(s32) = G_FMUL [[COPY]], [[C]]83 ; CHECK-NEXT: $sgpr0 = COPY [[FMUL]](s32)84 %0:_(s32) = COPY $sgpr085 %1:_(s32) = G_FCONSTANT float -10.086 %2:_(s32) = G_FMUL %0, %187 $sgpr0 = COPY %2(s32)88 89...90 91---92name: test_neg_fract_f32_sgpr93body: |94 bb.0:95 liveins: $sgpr096 97 ; CHECK-LABEL: name: test_neg_fract_f32_sgpr98 ; CHECK: liveins: $sgpr099 ; CHECK-NEXT: {{ $}}100 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0101 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_FCONSTANT float -5.000000e-01102 ; CHECK-NEXT: [[FMUL:%[0-9]+]]:_(s32) = G_FMUL [[COPY]], [[C]]103 ; CHECK-NEXT: $sgpr0 = COPY [[FMUL]](s32)104 %0:_(s32) = COPY $sgpr0105 %1:_(s32) = G_FCONSTANT float -0.5106 %2:_(s32) = G_FMUL %0, %1107 $sgpr0 = COPY %2(s32)108 109...110 111---112name: test_neg_one_f16_vgpr113tracksRegLiveness: true114body: |115 bb.0:116 liveins: $vgpr0117 118 ; CHECK-LABEL: name: test_neg_one_f16_vgpr119 ; CHECK: liveins: $vgpr0120 ; CHECK-NEXT: {{ $}}121 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0122 ; CHECK-NEXT: %x:_(s16) = G_TRUNC [[COPY]](s32)123 ; CHECK-NEXT: %d:_(s16) = G_FNEG %x124 ; CHECK-NEXT: %ext:_(s32) = G_ANYEXT %d(s16)125 ; CHECK-NEXT: $vgpr0 = COPY %ext(s32)126 %0:_(s32) = COPY $vgpr0127 %x:_(s16) = G_TRUNC %0:_(s32)128 %y:_(s16) = G_FCONSTANT half -1.0129 %d:_(s16) = G_FMUL %x, %y130 %ext:_(s32) = G_ANYEXT %d:_(s16)131 $vgpr0 = COPY %ext132 133...134 135---136name: test_neg_one_f32_vgpr137body: |138 bb.0:139 liveins: $vgpr0140 141 ; CHECK-LABEL: name: test_neg_one_f32_vgpr142 ; CHECK: liveins: $vgpr0143 ; CHECK-NEXT: {{ $}}144 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0145 ; CHECK-NEXT: [[FNEG:%[0-9]+]]:_(s32) = G_FNEG [[COPY]]146 ; CHECK-NEXT: $vgpr0 = COPY [[FNEG]](s32)147 %0:_(s32) = COPY $vgpr0148 %1:_(s32) = G_FCONSTANT float -1.0149 %2:_(s32) = G_FMUL %0, %1150 $vgpr0 = COPY %2(s32)151 152...153 154---155name: test_neg_one_f64_vgpr156tracksRegLiveness: true157body: |158 bb.0:159 liveins: $vgpr0160 161 ; CHECK-LABEL: name: test_neg_one_f64_vgpr162 ; CHECK: liveins: $vgpr0163 ; CHECK-NEXT: {{ $}}164 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0165 ; CHECK-NEXT: %x:_(s64) = G_ANYEXT [[COPY]](s32)166 ; CHECK-NEXT: %d:_(s64) = G_FNEG %x167 ; CHECK-NEXT: %ext:_(s32) = G_TRUNC %d(s64)168 ; CHECK-NEXT: $vgpr0 = COPY %ext(s32)169 %0:_(s32) = COPY $vgpr0170 %x:_(s64) = G_ANYEXT %0:_(s32)171 %y:_(s64) = G_FCONSTANT double -1.0172 %d:_(s64) = G_FMUL %x, %y173 %ext:_(s32) = G_TRUNC %d:_(s64)174 $vgpr0 = COPY %ext175 176...177 178---179name: test_neg_ten_f32_vgpr180body: |181 bb.0:182 liveins: $vgpr0183 184 ; CHECK-LABEL: name: test_neg_ten_f32_vgpr185 ; CHECK: liveins: $vgpr0186 ; CHECK-NEXT: {{ $}}187 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0188 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_FCONSTANT float -1.000000e+01189 ; CHECK-NEXT: [[FMUL:%[0-9]+]]:_(s32) = G_FMUL [[COPY]], [[C]]190 ; CHECK-NEXT: $vgpr0 = COPY [[FMUL]](s32)191 %0:_(s32) = COPY $vgpr0192 %1:_(s32) = G_FCONSTANT float -10.0193 %2:_(s32) = G_FMUL %0, %1194 $vgpr0 = COPY %2(s32)195 196...197 198---199name: test_neg_fract_f32_vgpr200body: |201 bb.0:202 liveins: $vgpr0203 204 ; CHECK-LABEL: name: test_neg_fract_f32_vgpr205 ; CHECK: liveins: $vgpr0206 ; CHECK-NEXT: {{ $}}207 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0208 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_FCONSTANT float -5.000000e-01209 ; CHECK-NEXT: [[FMUL:%[0-9]+]]:_(s32) = G_FMUL [[COPY]], [[C]]210 ; CHECK-NEXT: $vgpr0 = COPY [[FMUL]](s32)211 %0:_(s32) = COPY $vgpr0212 %1:_(s32) = G_FCONSTANT float -0.5213 %2:_(s32) = G_FMUL %0, %1214 $vgpr0 = COPY %2(s32)215 216...217