244 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -run-pass=regbankselect %s -verify-machineinstrs -o - -regbankselect-fast | FileCheck %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -run-pass=regbankselect %s -verify-machineinstrs -o - -regbankselect-greedy | FileCheck %s4 5---6name: v_s_exp_f327legalized: true8body: |9 bb.0:10 liveins: $sgpr011 12 ; CHECK-LABEL: name: v_s_exp_f3213 ; CHECK: liveins: $sgpr014 ; CHECK-NEXT: {{ $}}15 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr016 ; CHECK-NEXT: [[FEXP2_:%[0-9]+]]:sgpr(s32) = G_FEXP2 [[FEXP2_]]17 ; CHECK-NEXT: $vgpr0 = COPY [[FEXP2_]](s32)18 %0:_(s32) = COPY $sgpr019 %1:_(s32) = G_FEXP2 %120 $vgpr0 = COPY %1(s32)21...22---23name: v_s_exp_f1624legalized: true25body: |26 bb.0:27 liveins: $sgpr028 29 ; CHECK-LABEL: name: v_s_exp_f1630 ; CHECK: liveins: $sgpr031 ; CHECK-NEXT: {{ $}}32 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr033 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY]](s32)34 ; CHECK-NEXT: [[FEXP2_:%[0-9]+]]:sgpr(s16) = G_FEXP2 [[TRUNC]]35 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[FEXP2_]](s16)36 ; CHECK-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)37 %0:_(s32) = COPY $sgpr038 %1:_(s16) = G_TRUNC %0(s32)39 %2:_(s16) = G_FEXP2 %140 %3:_(s32) = G_ANYEXT %2(s16)41 $vgpr0 = COPY %3(s32)42 43...44---45name: v_s_log_f3246legalized: true47body: |48 bb.0:49 liveins: $sgpr050 51 ; CHECK-LABEL: name: v_s_log_f3252 ; CHECK: liveins: $sgpr053 ; CHECK-NEXT: {{ $}}54 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr055 ; CHECK-NEXT: [[FLOG2_:%[0-9]+]]:sgpr(s32) = G_FLOG2 [[COPY]]56 ; CHECK-NEXT: $vgpr0 = COPY [[FLOG2_]](s32)57 %0:_(s32) = COPY $sgpr058 %1:_(s32) = G_FLOG2 %059 $vgpr0 = COPY %1(s32)60 61...62---63name: v_s_log_f1664legalized: true65body: |66 bb.0:67 liveins: $sgpr068 69 ; CHECK-LABEL: name: v_s_log_f1670 ; CHECK: liveins: $sgpr071 ; CHECK-NEXT: {{ $}}72 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr073 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY]](s32)74 ; CHECK-NEXT: [[FLOG2_:%[0-9]+]]:sgpr(s16) = G_FLOG2 [[TRUNC]]75 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[FLOG2_]](s16)76 ; CHECK-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)77 %0:_(s32) = COPY $sgpr078 %1:_(s16) = G_TRUNC %0(s32)79 %2:_(s16) = G_FLOG2 %180 %3:_(s32) = G_ANYEXT %2(s16)81 $vgpr0 = COPY %3(s32)82 83...84---85name: v_s_rcp_f3286legalized: true87body: |88 bb.0:89 liveins: $sgpr090 91 ; CHECK-LABEL: name: v_s_rcp_f3292 ; CHECK: liveins: $sgpr093 ; CHECK-NEXT: {{ $}}94 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr095 ; CHECK-NEXT: [[INT:%[0-9]+]]:sgpr(s32) = nnan ninf nsz arcp contract afn reassoc G_INTRINSIC intrinsic(@llvm.amdgcn.rcp), [[COPY]](s32)96 ; CHECK-NEXT: $vgpr0 = COPY [[INT]](s32)97 %0:_(s32) = COPY $sgpr098 %1:_(s32) = nnan ninf nsz arcp contract afn reassoc G_INTRINSIC intrinsic(@llvm.amdgcn.rcp), %0(s32)99 $vgpr0 = COPY %1(s32)100 101...102---103name: v_s_rcp_f16104legalized: true105body: |106 bb.0:107 liveins: $sgpr0108 109 ; CHECK-LABEL: name: v_s_rcp_f16110 ; CHECK: liveins: $sgpr0111 ; CHECK-NEXT: {{ $}}112 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0113 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY]](s32)114 ; CHECK-NEXT: [[INT:%[0-9]+]]:sgpr(s16) = nnan ninf nsz arcp contract afn reassoc G_INTRINSIC intrinsic(@llvm.amdgcn.rcp), [[TRUNC]](s16)115 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[INT]](s16)116 ; CHECK-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)117 %0:_(s32) = COPY $sgpr0118 %1:_(s16) = G_TRUNC %0(s32)119 %2:_(s16) = nnan ninf nsz arcp contract afn reassoc G_INTRINSIC intrinsic(@llvm.amdgcn.rcp), %1(s16)120 %3:_(s32) = G_ANYEXT %2(s16)121 $vgpr0 = COPY %3(s32)122 123...124---125name: v_s_rsq_f32126legalized: true127body: |128 bb.0:129 liveins: $sgpr0130 131 ; CHECK-LABEL: name: v_s_rsq_f32132 ; CHECK: liveins: $sgpr0133 ; CHECK-NEXT: {{ $}}134 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0135 ; CHECK-NEXT: [[INT:%[0-9]+]]:sgpr(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.rsq), [[COPY]](s32)136 ; CHECK-NEXT: $vgpr0 = COPY [[INT]](s32)137 %0:_(s32) = COPY $sgpr0138 %1:_(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.rsq), %0(s32)139 $vgpr0 = COPY %1(s32)140 141...142---143name: v_s_rsq_f16144legalized: true145body: |146 bb.0:147 liveins: $sgpr0148 149 ; CHECK-LABEL: name: v_s_rsq_f16150 ; CHECK: liveins: $sgpr0151 ; CHECK-NEXT: {{ $}}152 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0153 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY]](s32)154 ; CHECK-NEXT: [[INT:%[0-9]+]]:sgpr(s16) = G_INTRINSIC intrinsic(@llvm.amdgcn.rsq), [[TRUNC]](s16)155 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[INT]](s16)156 ; CHECK-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)157 %0:_(s32) = COPY $sgpr0158 %1:_(s16) = G_TRUNC %0(s32)159 %2:_(s16) = G_INTRINSIC intrinsic(@llvm.amdgcn.rsq), %1(s16)160 %3:_(s32) = G_ANYEXT %2(s16)161 $vgpr0 = COPY %3(s32)162 163...164---165name: v_s_sqrt_f32166legalized: true167body: |168 bb.0:169 liveins: $sgpr0170 171 ; CHECK-LABEL: name: v_s_sqrt_f32172 ; CHECK: liveins: $sgpr0173 ; CHECK-NEXT: {{ $}}174 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0175 ; CHECK-NEXT: [[FSQRT:%[0-9]+]]:sgpr(s32) = G_FSQRT [[COPY]]176 ; CHECK-NEXT: $vgpr0 = COPY [[FSQRT]](s32)177 %0:_(s32) = COPY $sgpr0178 %1:_(s32) = G_FSQRT %0179 $vgpr0 = COPY %1(s32)180 181...182---183name: v_s_sqrt_f16184legalized: true185body: |186 bb.0:187 liveins: $sgpr0188 189 ; CHECK-LABEL: name: v_s_sqrt_f16190 ; CHECK: liveins: $sgpr0191 ; CHECK-NEXT: {{ $}}192 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0193 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY]](s32)194 ; CHECK-NEXT: [[FSQRT:%[0-9]+]]:sgpr(s16) = G_FSQRT [[TRUNC]]195 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[FSQRT]](s16)196 ; CHECK-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)197 %0:_(s32) = COPY $sgpr0198 %1:_(s16) = G_TRUNC %0(s32)199 %2:_(s16) = G_FSQRT %1200 %3:_(s32) = G_ANYEXT %2(s16)201 $vgpr0 = COPY %3(s32)202 203...204---205name: v_amdgcn_sqrt_f32206legalized: true207body: |208 bb.0:209 liveins: $sgpr0210 211 ; CHECK-LABEL: name: v_amdgcn_sqrt_f32212 ; CHECK: liveins: $sgpr0213 ; CHECK-NEXT: {{ $}}214 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0215 ; CHECK-NEXT: [[INT:%[0-9]+]]:sgpr(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.sqrt), [[COPY]](s32)216 ; CHECK-NEXT: $vgpr0 = COPY [[INT]](s32)217 %0:_(s32) = COPY $sgpr0218 %1:_(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.sqrt), %0(s32)219 $vgpr0 = COPY %1(s32)220 221...222---223name: v_amdgcn_sqrt_f16224legalized: true225body: |226 bb.0:227 liveins: $sgpr0228 229 ; CHECK-LABEL: name: v_amdgcn_sqrt_f16230 ; CHECK: liveins: $sgpr0231 ; CHECK-NEXT: {{ $}}232 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0233 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY]](s32)234 ; CHECK-NEXT: [[INT:%[0-9]+]]:sgpr(s16) = G_INTRINSIC intrinsic(@llvm.amdgcn.sqrt), [[TRUNC]](s16)235 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[INT]](s16)236 ; CHECK-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)237 %0:_(s32) = COPY $sgpr0238 %1:_(s16) = G_TRUNC %0(s32)239 %2:_(s16) = G_INTRINSIC intrinsic(@llvm.amdgcn.sqrt), %1(s16)240 %3:_(s32) = G_ANYEXT %2(s16)241 $vgpr0 = COPY %3(s32)242 243...244