185 lines · plain
1# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -run-pass=instruction-select -global-isel-abort=2 -pass-remarks-missed='gisel*' -verify-machineinstrs -filetype=null %s 2>&1 | FileCheck -check-prefix=ERR %s2 3# Make sure v2s16 SALU operations fail to select4 5# ERR: remark: <unknown>:0:0: cannot select: %2:sgpr(<2 x s16>) = G_ADD %0:sgpr, %1:sgpr (in function: s_add_v2s16)6# ERR: remark: <unknown>:0:0: cannot select: %2:sgpr(<2 x s16>) = G_SUB %0:sgpr, %1:sgpr (in function: s_sub_v2s16)7# ERR: remark: <unknown>:0:0: cannot select: %2:sgpr(<2 x s16>) = G_MUL %0:sgpr, %1:sgpr (in function: s_mul_v2s16)8# ERR: remark: <unknown>:0:0: cannot select: %2:sgpr(<2 x s16>) = G_SHL %0:sgpr, %1:sgpr(<2 x s16>) (in function: s_shl_v2s16)9# ERR: remark: <unknown>:0:0: cannot select: %2:sgpr(<2 x s16>) = G_LSHR %0:sgpr, %1:sgpr(<2 x s16>) (in function: s_lshr_v2s16)10# ERR: remark: <unknown>:0:0: cannot select: %2:sgpr(<2 x s16>) = G_ASHR %0:sgpr, %1:sgpr(<2 x s16>) (in function: s_ashr_v2s16)11# ERR: remark: <unknown>:0:0: cannot select: %2:sgpr(<2 x s16>) = G_SMIN %0:sgpr, %1:sgpr (in function: s_smin_v2s16)12# ERR: remark: <unknown>:0:0: cannot select: %2:sgpr(<2 x s16>) = G_SMAX %0:sgpr, %1:sgpr (in function: s_smax_v2s16)13# ERR: remark: <unknown>:0:0: cannot select: %2:sgpr(<2 x s16>) = G_UMIN %0:sgpr, %1:sgpr (in function: s_umin_v2s16)14# ERR: remark: <unknown>:0:0: cannot select: %2:sgpr(<2 x s16>) = G_UMAX %0:sgpr, %1:sgpr (in function: s_umax_v2s16)15 16---17name: s_add_v2s1618legalized: true19regBankSelected: true20tracksRegLiveness: true21 22body: |23 bb.0:24 liveins: $sgpr0, $sgpr125 26 %0:sgpr(<2 x s16>) = COPY $sgpr027 %1:sgpr(<2 x s16>) = COPY $sgpr128 %2:sgpr(<2 x s16>) = G_ADD %0, %129 S_ENDPGM 0, implicit %230 31...32 33---34name: s_sub_v2s1635legalized: true36regBankSelected: true37tracksRegLiveness: true38 39body: |40 bb.0:41 liveins: $sgpr0, $sgpr142 43 %0:sgpr(<2 x s16>) = COPY $sgpr044 %1:sgpr(<2 x s16>) = COPY $sgpr145 %2:sgpr(<2 x s16>) = G_SUB %0, %146 S_ENDPGM 0, implicit %247 48...49 50---51name: s_mul_v2s1652legalized: true53regBankSelected: true54tracksRegLiveness: true55 56body: |57 bb.0:58 liveins: $sgpr0, $sgpr159 60 %0:sgpr(<2 x s16>) = COPY $sgpr061 %1:sgpr(<2 x s16>) = COPY $sgpr162 %2:sgpr(<2 x s16>) = G_MUL %0, %163 S_ENDPGM 0, implicit %264 65...66 67---68name: s_shl_v2s1669legalized: true70regBankSelected: true71tracksRegLiveness: true72 73body: |74 bb.0:75 liveins: $sgpr0, $sgpr176 77 %0:sgpr(<2 x s16>) = COPY $sgpr078 %1:sgpr(<2 x s16>) = COPY $sgpr179 %2:sgpr(<2 x s16>) = G_SHL %0, %180 S_ENDPGM 0, implicit %281 82...83 84---85name: s_lshr_v2s1686legalized: true87regBankSelected: true88tracksRegLiveness: true89 90body: |91 bb.0:92 liveins: $sgpr0, $sgpr193 94 %0:sgpr(<2 x s16>) = COPY $sgpr095 %1:sgpr(<2 x s16>) = COPY $sgpr196 %2:sgpr(<2 x s16>) = G_LSHR %0, %197 S_ENDPGM 0, implicit %298 99...100 101---102name: s_ashr_v2s16103legalized: true104regBankSelected: true105tracksRegLiveness: true106 107body: |108 bb.0:109 liveins: $sgpr0, $sgpr1110 111 %0:sgpr(<2 x s16>) = COPY $sgpr0112 %1:sgpr(<2 x s16>) = COPY $sgpr1113 %2:sgpr(<2 x s16>) = G_ASHR %0, %1114 S_ENDPGM 0, implicit %2115 116...117 118---119name: s_smin_v2s16120legalized: true121regBankSelected: true122tracksRegLiveness: true123 124body: |125 bb.0:126 liveins: $sgpr0, $sgpr1127 128 %0:sgpr(<2 x s16>) = COPY $sgpr0129 %1:sgpr(<2 x s16>) = COPY $sgpr1130 %2:sgpr(<2 x s16>) = G_SMIN %0, %1131 S_ENDPGM 0, implicit %2132 133...134 135---136name: s_smax_v2s16137legalized: true138regBankSelected: true139tracksRegLiveness: true140 141body: |142 bb.0:143 liveins: $sgpr0, $sgpr1144 145 %0:sgpr(<2 x s16>) = COPY $sgpr0146 %1:sgpr(<2 x s16>) = COPY $sgpr1147 %2:sgpr(<2 x s16>) = G_SMAX %0, %1148 S_ENDPGM 0, implicit %2149 150...151 152---153name: s_umin_v2s16154legalized: true155regBankSelected: true156tracksRegLiveness: true157 158body: |159 bb.0:160 liveins: $sgpr0, $sgpr1161 162 %0:sgpr(<2 x s16>) = COPY $sgpr0163 %1:sgpr(<2 x s16>) = COPY $sgpr1164 %2:sgpr(<2 x s16>) = G_UMIN %0, %1165 S_ENDPGM 0, implicit %2166 167...168 169---170name: s_umax_v2s16171legalized: true172regBankSelected: true173tracksRegLiveness: true174 175body: |176 bb.0:177 liveins: $sgpr0, $sgpr1178 179 %0:sgpr(<2 x s16>) = COPY $sgpr0180 %1:sgpr(<2 x s16>) = COPY $sgpr1181 %2:sgpr(<2 x s16>) = G_UMAX %0, %1182 S_ENDPGM 0, implicit %2183 184...185