brintos

brintos / llvm-project-archived public Read only

0
0
Text · 26.4 KiB · 63aa8b4 Raw
557 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=WAVE64 %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=WAVE32 %s4# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+real-true16 -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefixes=GFX11-TRUE16 %s5# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=-real-true16 -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefixes=GFX11-FAKE16 %s6# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -mattr=+real-true16 -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefixes=GFX12-TRUE16 %s7# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -mattr=-real-true16 -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefixes=GFX12-FAKE16 %s8 9---10 11name:            icmp_eq_s16_sv12legalized:       true13regBankSelected: true14 15body: |16  bb.0:17    liveins:  $sgpr0, $vgpr018 19    ; WAVE64-LABEL: name: icmp_eq_s16_sv20    ; WAVE64: liveins: $sgpr0, $vgpr021    ; WAVE64-NEXT: {{  $}}22    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr023    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr024    ; WAVE64-NEXT: [[V_CMP_EQ_U16_e64_:%[0-9]+]]:sreg_64 = V_CMP_EQ_U16_e64 [[COPY]], [[COPY1]], implicit $exec25    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_e64_]]26    ;27    ; WAVE32-LABEL: name: icmp_eq_s16_sv28    ; WAVE32: liveins: $sgpr0, $vgpr029    ; WAVE32-NEXT: {{  $}}30    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr031    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr032    ; WAVE32-NEXT: [[V_CMP_EQ_U16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_e64 [[COPY]], [[COPY1]], implicit $exec33    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_e64_]]34    ;35    ; GFX11-TRUE16-LABEL: name: icmp_eq_s16_sv36    ; GFX11-TRUE16: liveins: $sgpr0, $vgpr037    ; GFX11-TRUE16-NEXT: {{  $}}38    ; GFX11-TRUE16-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr039    ; GFX11-TRUE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr040    ; GFX11-TRUE16-NEXT: [[COPY2:%[0-9]+]]:vgpr_16 = COPY [[COPY1]].lo1641    ; GFX11-TRUE16-NEXT: [[V_CMP_EQ_U16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_t16_e64 0, [[COPY]], 0, [[COPY2]], 0, implicit $exec42    ; GFX11-TRUE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_t16_e64_]]43    ;44    ; GFX11-FAKE16-LABEL: name: icmp_eq_s16_sv45    ; GFX11-FAKE16: liveins: $sgpr0, $vgpr046    ; GFX11-FAKE16-NEXT: {{  $}}47    ; GFX11-FAKE16-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr048    ; GFX11-FAKE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr049    ; GFX11-FAKE16-NEXT: [[V_CMP_EQ_U16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec50    ; GFX11-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_fake16_e64_]]51    ;52    ; GFX12-TRUE16-LABEL: name: icmp_eq_s16_sv53    ; GFX12-TRUE16: liveins: $sgpr0, $vgpr054    ; GFX12-TRUE16-NEXT: {{  $}}55    ; GFX12-TRUE16-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr056    ; GFX12-TRUE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr057    ; GFX12-TRUE16-NEXT: [[COPY2:%[0-9]+]]:vgpr_16 = COPY [[COPY1]].lo1658    ; GFX12-TRUE16-NEXT: [[V_CMP_EQ_U16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_t16_e64 0, [[COPY]], 0, [[COPY2]], 0, implicit $exec59    ; GFX12-TRUE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_t16_e64_]]60    ;61    ; GFX12-FAKE16-LABEL: name: icmp_eq_s16_sv62    ; GFX12-FAKE16: liveins: $sgpr0, $vgpr063    ; GFX12-FAKE16-NEXT: {{  $}}64    ; GFX12-FAKE16-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr065    ; GFX12-FAKE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr066    ; GFX12-FAKE16-NEXT: [[V_CMP_EQ_U16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec67    ; GFX12-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_fake16_e64_]]68    %0:sgpr(s32) = COPY $sgpr069    %1:vgpr(s32) = COPY $vgpr070    %2:sgpr(s16) = G_TRUNC %071    %3:vgpr(s16) = G_TRUNC %172    %4:vcc(s1) = G_ICMP intpred(eq), %2, %373    S_ENDPGM 0, implicit %474...75 76---77 78name:            icmp_eq_s16_vs79legalized:       true80regBankSelected: true81 82body: |83  bb.0:84    liveins:  $sgpr0, $vgpr085 86    ; WAVE64-LABEL: name: icmp_eq_s16_vs87    ; WAVE64: liveins: $sgpr0, $vgpr088    ; WAVE64-NEXT: {{  $}}89    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr090    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr091    ; WAVE64-NEXT: [[V_CMP_EQ_U16_e64_:%[0-9]+]]:sreg_64 = V_CMP_EQ_U16_e64 [[COPY]], [[COPY1]], implicit $exec92    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_e64_]]93    ;94    ; WAVE32-LABEL: name: icmp_eq_s16_vs95    ; WAVE32: liveins: $sgpr0, $vgpr096    ; WAVE32-NEXT: {{  $}}97    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr098    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr099    ; WAVE32-NEXT: [[V_CMP_EQ_U16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_e64 [[COPY]], [[COPY1]], implicit $exec100    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_e64_]]101    ;102    ; GFX11-TRUE16-LABEL: name: icmp_eq_s16_vs103    ; GFX11-TRUE16: liveins: $sgpr0, $vgpr0104    ; GFX11-TRUE16-NEXT: {{  $}}105    ; GFX11-TRUE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0106    ; GFX11-TRUE16-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0107    ; GFX11-TRUE16-NEXT: [[COPY2:%[0-9]+]]:vgpr_16 = COPY [[COPY]].lo16108    ; GFX11-TRUE16-NEXT: [[V_CMP_EQ_U16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_t16_e64 0, [[COPY2]], 0, [[COPY1]], 0, implicit $exec109    ; GFX11-TRUE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_t16_e64_]]110    ;111    ; GFX11-FAKE16-LABEL: name: icmp_eq_s16_vs112    ; GFX11-FAKE16: liveins: $sgpr0, $vgpr0113    ; GFX11-FAKE16-NEXT: {{  $}}114    ; GFX11-FAKE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0115    ; GFX11-FAKE16-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0116    ; GFX11-FAKE16-NEXT: [[V_CMP_EQ_U16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec117    ; GFX11-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_fake16_e64_]]118    ;119    ; GFX12-TRUE16-LABEL: name: icmp_eq_s16_vs120    ; GFX12-TRUE16: liveins: $sgpr0, $vgpr0121    ; GFX12-TRUE16-NEXT: {{  $}}122    ; GFX12-TRUE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0123    ; GFX12-TRUE16-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0124    ; GFX12-TRUE16-NEXT: [[COPY2:%[0-9]+]]:vgpr_16 = COPY [[COPY]].lo16125    ; GFX12-TRUE16-NEXT: [[V_CMP_EQ_U16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_t16_e64 0, [[COPY2]], 0, [[COPY1]], 0, implicit $exec126    ; GFX12-TRUE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_t16_e64_]]127    ;128    ; GFX12-FAKE16-LABEL: name: icmp_eq_s16_vs129    ; GFX12-FAKE16: liveins: $sgpr0, $vgpr0130    ; GFX12-FAKE16-NEXT: {{  $}}131    ; GFX12-FAKE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0132    ; GFX12-FAKE16-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0133    ; GFX12-FAKE16-NEXT: [[V_CMP_EQ_U16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec134    ; GFX12-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_fake16_e64_]]135    %0:vgpr(s32) = COPY $vgpr0136    %1:sgpr(s32) = COPY $sgpr0137    %2:vgpr(s16) = G_TRUNC %0138    %3:sgpr(s16) = G_TRUNC %1139    %4:vcc(s1) = G_ICMP intpred(eq), %2, %3140    S_ENDPGM 0, implicit %4141...142 143---144 145name:            icmp_eq_s16_vv146legalized:       true147regBankSelected: true148 149body: |150  bb.0:151    liveins:  $vgpr0, $vgpr1152 153    ; WAVE64-LABEL: name: icmp_eq_s16_vv154    ; WAVE64: liveins: $vgpr0, $vgpr1155    ; WAVE64-NEXT: {{  $}}156    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0157    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1158    ; WAVE64-NEXT: [[V_CMP_EQ_U16_e64_:%[0-9]+]]:sreg_64 = V_CMP_EQ_U16_e64 [[COPY]], [[COPY1]], implicit $exec159    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_e64_]]160    ;161    ; WAVE32-LABEL: name: icmp_eq_s16_vv162    ; WAVE32: liveins: $vgpr0, $vgpr1163    ; WAVE32-NEXT: {{  $}}164    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0165    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1166    ; WAVE32-NEXT: [[V_CMP_EQ_U16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_e64 [[COPY]], [[COPY1]], implicit $exec167    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_e64_]]168    ;169    ; GFX11-TRUE16-LABEL: name: icmp_eq_s16_vv170    ; GFX11-TRUE16: liveins: $vgpr0, $vgpr1171    ; GFX11-TRUE16-NEXT: {{  $}}172    ; GFX11-TRUE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0173    ; GFX11-TRUE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1174    ; GFX11-TRUE16-NEXT: [[COPY2:%[0-9]+]]:vgpr_16 = COPY [[COPY]].lo16175    ; GFX11-TRUE16-NEXT: [[COPY3:%[0-9]+]]:vgpr_16 = COPY [[COPY1]].lo16176    ; GFX11-TRUE16-NEXT: [[V_CMP_EQ_U16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_t16_e64 0, [[COPY2]], 0, [[COPY3]], 0, implicit $exec177    ; GFX11-TRUE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_t16_e64_]]178    ;179    ; GFX11-FAKE16-LABEL: name: icmp_eq_s16_vv180    ; GFX11-FAKE16: liveins: $vgpr0, $vgpr1181    ; GFX11-FAKE16-NEXT: {{  $}}182    ; GFX11-FAKE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0183    ; GFX11-FAKE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1184    ; GFX11-FAKE16-NEXT: [[V_CMP_EQ_U16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec185    ; GFX11-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_fake16_e64_]]186    ;187    ; GFX12-TRUE16-LABEL: name: icmp_eq_s16_vv188    ; GFX12-TRUE16: liveins: $vgpr0, $vgpr1189    ; GFX12-TRUE16-NEXT: {{  $}}190    ; GFX12-TRUE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0191    ; GFX12-TRUE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1192    ; GFX12-TRUE16-NEXT: [[COPY2:%[0-9]+]]:vgpr_16 = COPY [[COPY]].lo16193    ; GFX12-TRUE16-NEXT: [[COPY3:%[0-9]+]]:vgpr_16 = COPY [[COPY1]].lo16194    ; GFX12-TRUE16-NEXT: [[V_CMP_EQ_U16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_t16_e64 0, [[COPY2]], 0, [[COPY3]], 0, implicit $exec195    ; GFX12-TRUE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_t16_e64_]]196    ;197    ; GFX12-FAKE16-LABEL: name: icmp_eq_s16_vv198    ; GFX12-FAKE16: liveins: $vgpr0, $vgpr1199    ; GFX12-FAKE16-NEXT: {{  $}}200    ; GFX12-FAKE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0201    ; GFX12-FAKE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1202    ; GFX12-FAKE16-NEXT: [[V_CMP_EQ_U16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec203    ; GFX12-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_fake16_e64_]]204    %0:vgpr(s32) = COPY $vgpr0205    %1:vgpr(s32) = COPY $vgpr1206    %2:vgpr(s16) = G_TRUNC %0207    %3:vgpr(s16) = G_TRUNC %1208    %4:vcc(s1) = G_ICMP intpred(eq), %2, %3209    S_ENDPGM 0, implicit %4210...211 212---213 214name:            icmp_ne_s16_vv215legalized:       true216regBankSelected: true217 218body: |219  bb.0:220    liveins:  $vgpr0, $vgpr1221 222    ; WAVE64-LABEL: name: icmp_ne_s16_vv223    ; WAVE64: liveins: $vgpr0, $vgpr1224    ; WAVE64-NEXT: {{  $}}225    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0226    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1227    ; WAVE64-NEXT: [[V_CMP_NE_U16_e64_:%[0-9]+]]:sreg_64 = V_CMP_NE_U16_e64 [[COPY]], [[COPY1]], implicit $exec228    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_NE_U16_e64_]]229    ;230    ; WAVE32-LABEL: name: icmp_ne_s16_vv231    ; WAVE32: liveins: $vgpr0, $vgpr1232    ; WAVE32-NEXT: {{  $}}233    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0234    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1235    ; WAVE32-NEXT: [[V_CMP_NE_U16_e64_:%[0-9]+]]:sreg_32 = V_CMP_NE_U16_e64 [[COPY]], [[COPY1]], implicit $exec236    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_NE_U16_e64_]]237    ;238    ; GFX11-TRUE16-LABEL: name: icmp_ne_s16_vv239    ; GFX11-TRUE16: liveins: $vgpr0, $vgpr1240    ; GFX11-TRUE16-NEXT: {{  $}}241    ; GFX11-TRUE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0242    ; GFX11-TRUE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1243    ; GFX11-TRUE16-NEXT: [[COPY2:%[0-9]+]]:vgpr_16 = COPY [[COPY]].lo16244    ; GFX11-TRUE16-NEXT: [[COPY3:%[0-9]+]]:vgpr_16 = COPY [[COPY1]].lo16245    ; GFX11-TRUE16-NEXT: [[V_CMP_NE_U16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_NE_U16_t16_e64 0, [[COPY2]], 0, [[COPY3]], 0, implicit $exec246    ; GFX11-TRUE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_NE_U16_t16_e64_]]247    ;248    ; GFX11-FAKE16-LABEL: name: icmp_ne_s16_vv249    ; GFX11-FAKE16: liveins: $vgpr0, $vgpr1250    ; GFX11-FAKE16-NEXT: {{  $}}251    ; GFX11-FAKE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0252    ; GFX11-FAKE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1253    ; GFX11-FAKE16-NEXT: [[V_CMP_NE_U16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_NE_U16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec254    ; GFX11-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_NE_U16_fake16_e64_]]255    ;256    ; GFX12-TRUE16-LABEL: name: icmp_ne_s16_vv257    ; GFX12-TRUE16: liveins: $vgpr0, $vgpr1258    ; GFX12-TRUE16-NEXT: {{  $}}259    ; GFX12-TRUE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0260    ; GFX12-TRUE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1261    ; GFX12-TRUE16-NEXT: [[COPY2:%[0-9]+]]:vgpr_16 = COPY [[COPY]].lo16262    ; GFX12-TRUE16-NEXT: [[COPY3:%[0-9]+]]:vgpr_16 = COPY [[COPY1]].lo16263    ; GFX12-TRUE16-NEXT: [[V_CMP_NE_U16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_NE_U16_t16_e64 0, [[COPY2]], 0, [[COPY3]], 0, implicit $exec264    ; GFX12-TRUE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_NE_U16_t16_e64_]]265    ;266    ; GFX12-FAKE16-LABEL: name: icmp_ne_s16_vv267    ; GFX12-FAKE16: liveins: $vgpr0, $vgpr1268    ; GFX12-FAKE16-NEXT: {{  $}}269    ; GFX12-FAKE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0270    ; GFX12-FAKE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1271    ; GFX12-FAKE16-NEXT: [[V_CMP_NE_U16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_NE_U16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec272    ; GFX12-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_NE_U16_fake16_e64_]]273    %0:vgpr(s32) = COPY $vgpr0274    %1:vgpr(s32) = COPY $vgpr1275    %2:vgpr(s16) = G_TRUNC %0276    %3:vgpr(s16) = G_TRUNC %1277    %4:vcc(s1) = G_ICMP intpred(ne), %2, %3278    S_ENDPGM 0, implicit %4279...280 281---282 283name:            icmp_slt_s16_vv284legalized:       true285regBankSelected: true286 287body: |288  bb.0:289    liveins:  $vgpr0, $vgpr1290 291    ; WAVE64-LABEL: name: icmp_slt_s16_vv292    ; WAVE64: liveins: $vgpr0, $vgpr1293    ; WAVE64-NEXT: {{  $}}294    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0295    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1296    ; WAVE64-NEXT: [[V_CMP_LT_I16_e64_:%[0-9]+]]:sreg_64 = V_CMP_LT_I16_e64 [[COPY]], [[COPY1]], implicit $exec297    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_I16_e64_]]298    ;299    ; WAVE32-LABEL: name: icmp_slt_s16_vv300    ; WAVE32: liveins: $vgpr0, $vgpr1301    ; WAVE32-NEXT: {{  $}}302    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0303    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1304    ; WAVE32-NEXT: [[V_CMP_LT_I16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LT_I16_e64 [[COPY]], [[COPY1]], implicit $exec305    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_I16_e64_]]306    ;307    ; GFX11-TRUE16-LABEL: name: icmp_slt_s16_vv308    ; GFX11-TRUE16: liveins: $vgpr0, $vgpr1309    ; GFX11-TRUE16-NEXT: {{  $}}310    ; GFX11-TRUE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0311    ; GFX11-TRUE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1312    ; GFX11-TRUE16-NEXT: [[COPY2:%[0-9]+]]:vgpr_16 = COPY [[COPY]].lo16313    ; GFX11-TRUE16-NEXT: [[COPY3:%[0-9]+]]:vgpr_16 = COPY [[COPY1]].lo16314    ; GFX11-TRUE16-NEXT: [[V_CMP_LT_I16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LT_I16_t16_e64 0, [[COPY2]], 0, [[COPY3]], 0, implicit $exec315    ; GFX11-TRUE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_I16_t16_e64_]]316    ;317    ; GFX11-FAKE16-LABEL: name: icmp_slt_s16_vv318    ; GFX11-FAKE16: liveins: $vgpr0, $vgpr1319    ; GFX11-FAKE16-NEXT: {{  $}}320    ; GFX11-FAKE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0321    ; GFX11-FAKE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1322    ; GFX11-FAKE16-NEXT: [[V_CMP_LT_I16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LT_I16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec323    ; GFX11-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_I16_fake16_e64_]]324    ;325    ; GFX12-TRUE16-LABEL: name: icmp_slt_s16_vv326    ; GFX12-TRUE16: liveins: $vgpr0, $vgpr1327    ; GFX12-TRUE16-NEXT: {{  $}}328    ; GFX12-TRUE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0329    ; GFX12-TRUE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1330    ; GFX12-TRUE16-NEXT: [[COPY2:%[0-9]+]]:vgpr_16 = COPY [[COPY]].lo16331    ; GFX12-TRUE16-NEXT: [[COPY3:%[0-9]+]]:vgpr_16 = COPY [[COPY1]].lo16332    ; GFX12-TRUE16-NEXT: [[V_CMP_LT_I16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LT_I16_t16_e64 0, [[COPY2]], 0, [[COPY3]], 0, implicit $exec333    ; GFX12-TRUE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_I16_t16_e64_]]334    ;335    ; GFX12-FAKE16-LABEL: name: icmp_slt_s16_vv336    ; GFX12-FAKE16: liveins: $vgpr0, $vgpr1337    ; GFX12-FAKE16-NEXT: {{  $}}338    ; GFX12-FAKE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0339    ; GFX12-FAKE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1340    ; GFX12-FAKE16-NEXT: [[V_CMP_LT_I16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LT_I16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec341    ; GFX12-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_I16_fake16_e64_]]342    %0:vgpr(s32) = COPY $vgpr0343    %1:vgpr(s32) = COPY $vgpr1344    %2:vgpr(s16) = G_TRUNC %0345    %3:vgpr(s16) = G_TRUNC %1346    %4:vcc(s1) = G_ICMP intpred(slt), %2, %3347    S_ENDPGM 0, implicit %4348...349 350---351 352name:            icmp_sle_s16_vv353legalized:       true354regBankSelected: true355 356body: |357  bb.0:358    liveins:  $vgpr0, $vgpr1359 360    ; WAVE64-LABEL: name: icmp_sle_s16_vv361    ; WAVE64: liveins: $vgpr0, $vgpr1362    ; WAVE64-NEXT: {{  $}}363    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0364    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1365    ; WAVE64-NEXT: [[V_CMP_LE_I16_e64_:%[0-9]+]]:sreg_64 = V_CMP_LE_I16_e64 [[COPY]], [[COPY1]], implicit $exec366    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_I16_e64_]]367    ;368    ; WAVE32-LABEL: name: icmp_sle_s16_vv369    ; WAVE32: liveins: $vgpr0, $vgpr1370    ; WAVE32-NEXT: {{  $}}371    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0372    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1373    ; WAVE32-NEXT: [[V_CMP_LE_I16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LE_I16_e64 [[COPY]], [[COPY1]], implicit $exec374    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_I16_e64_]]375    ;376    ; GFX11-TRUE16-LABEL: name: icmp_sle_s16_vv377    ; GFX11-TRUE16: liveins: $vgpr0, $vgpr1378    ; GFX11-TRUE16-NEXT: {{  $}}379    ; GFX11-TRUE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0380    ; GFX11-TRUE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1381    ; GFX11-TRUE16-NEXT: [[COPY2:%[0-9]+]]:vgpr_16 = COPY [[COPY]].lo16382    ; GFX11-TRUE16-NEXT: [[COPY3:%[0-9]+]]:vgpr_16 = COPY [[COPY1]].lo16383    ; GFX11-TRUE16-NEXT: [[V_CMP_LE_I16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LE_I16_t16_e64 0, [[COPY2]], 0, [[COPY3]], 0, implicit $exec384    ; GFX11-TRUE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_I16_t16_e64_]]385    ;386    ; GFX11-FAKE16-LABEL: name: icmp_sle_s16_vv387    ; GFX11-FAKE16: liveins: $vgpr0, $vgpr1388    ; GFX11-FAKE16-NEXT: {{  $}}389    ; GFX11-FAKE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0390    ; GFX11-FAKE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1391    ; GFX11-FAKE16-NEXT: [[V_CMP_LE_I16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LE_I16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec392    ; GFX11-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_I16_fake16_e64_]]393    ;394    ; GFX12-TRUE16-LABEL: name: icmp_sle_s16_vv395    ; GFX12-TRUE16: liveins: $vgpr0, $vgpr1396    ; GFX12-TRUE16-NEXT: {{  $}}397    ; GFX12-TRUE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0398    ; GFX12-TRUE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1399    ; GFX12-TRUE16-NEXT: [[COPY2:%[0-9]+]]:vgpr_16 = COPY [[COPY]].lo16400    ; GFX12-TRUE16-NEXT: [[COPY3:%[0-9]+]]:vgpr_16 = COPY [[COPY1]].lo16401    ; GFX12-TRUE16-NEXT: [[V_CMP_LE_I16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LE_I16_t16_e64 0, [[COPY2]], 0, [[COPY3]], 0, implicit $exec402    ; GFX12-TRUE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_I16_t16_e64_]]403    ;404    ; GFX12-FAKE16-LABEL: name: icmp_sle_s16_vv405    ; GFX12-FAKE16: liveins: $vgpr0, $vgpr1406    ; GFX12-FAKE16-NEXT: {{  $}}407    ; GFX12-FAKE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0408    ; GFX12-FAKE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1409    ; GFX12-FAKE16-NEXT: [[V_CMP_LE_I16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LE_I16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec410    ; GFX12-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_I16_fake16_e64_]]411    %0:vgpr(s32) = COPY $vgpr0412    %1:vgpr(s32) = COPY $vgpr1413    %2:vgpr(s16) = G_TRUNC %0414    %3:vgpr(s16) = G_TRUNC %1415    %4:vcc(s1) = G_ICMP intpred(sle), %2, %3416    S_ENDPGM 0, implicit %4417...418 419---420 421name:            icmp_ult_s16_vv422legalized:       true423regBankSelected: true424 425body: |426  bb.0:427    liveins:  $vgpr0, $vgpr1428 429    ; WAVE64-LABEL: name: icmp_ult_s16_vv430    ; WAVE64: liveins: $vgpr0, $vgpr1431    ; WAVE64-NEXT: {{  $}}432    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0433    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1434    ; WAVE64-NEXT: [[V_CMP_LT_U16_e64_:%[0-9]+]]:sreg_64 = V_CMP_LT_U16_e64 [[COPY]], [[COPY1]], implicit $exec435    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_U16_e64_]]436    ;437    ; WAVE32-LABEL: name: icmp_ult_s16_vv438    ; WAVE32: liveins: $vgpr0, $vgpr1439    ; WAVE32-NEXT: {{  $}}440    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0441    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1442    ; WAVE32-NEXT: [[V_CMP_LT_U16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LT_U16_e64 [[COPY]], [[COPY1]], implicit $exec443    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_U16_e64_]]444    ;445    ; GFX11-TRUE16-LABEL: name: icmp_ult_s16_vv446    ; GFX11-TRUE16: liveins: $vgpr0, $vgpr1447    ; GFX11-TRUE16-NEXT: {{  $}}448    ; GFX11-TRUE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0449    ; GFX11-TRUE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1450    ; GFX11-TRUE16-NEXT: [[COPY2:%[0-9]+]]:vgpr_16 = COPY [[COPY]].lo16451    ; GFX11-TRUE16-NEXT: [[COPY3:%[0-9]+]]:vgpr_16 = COPY [[COPY1]].lo16452    ; GFX11-TRUE16-NEXT: [[V_CMP_LT_U16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LT_U16_t16_e64 0, [[COPY2]], 0, [[COPY3]], 0, implicit $exec453    ; GFX11-TRUE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_U16_t16_e64_]]454    ;455    ; GFX11-FAKE16-LABEL: name: icmp_ult_s16_vv456    ; GFX11-FAKE16: liveins: $vgpr0, $vgpr1457    ; GFX11-FAKE16-NEXT: {{  $}}458    ; GFX11-FAKE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0459    ; GFX11-FAKE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1460    ; GFX11-FAKE16-NEXT: [[V_CMP_LT_U16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LT_U16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec461    ; GFX11-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_U16_fake16_e64_]]462    ;463    ; GFX12-TRUE16-LABEL: name: icmp_ult_s16_vv464    ; GFX12-TRUE16: liveins: $vgpr0, $vgpr1465    ; GFX12-TRUE16-NEXT: {{  $}}466    ; GFX12-TRUE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0467    ; GFX12-TRUE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1468    ; GFX12-TRUE16-NEXT: [[COPY2:%[0-9]+]]:vgpr_16 = COPY [[COPY]].lo16469    ; GFX12-TRUE16-NEXT: [[COPY3:%[0-9]+]]:vgpr_16 = COPY [[COPY1]].lo16470    ; GFX12-TRUE16-NEXT: [[V_CMP_LT_U16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LT_U16_t16_e64 0, [[COPY2]], 0, [[COPY3]], 0, implicit $exec471    ; GFX12-TRUE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_U16_t16_e64_]]472    ;473    ; GFX12-FAKE16-LABEL: name: icmp_ult_s16_vv474    ; GFX12-FAKE16: liveins: $vgpr0, $vgpr1475    ; GFX12-FAKE16-NEXT: {{  $}}476    ; GFX12-FAKE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0477    ; GFX12-FAKE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1478    ; GFX12-FAKE16-NEXT: [[V_CMP_LT_U16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LT_U16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec479    ; GFX12-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_U16_fake16_e64_]]480    %0:vgpr(s32) = COPY $vgpr0481    %1:vgpr(s32) = COPY $vgpr1482    %2:vgpr(s16) = G_TRUNC %0483    %3:vgpr(s16) = G_TRUNC %1484    %4:vcc(s1) = G_ICMP intpred(ult), %2, %3485    S_ENDPGM 0, implicit %4486...487 488---489 490name:            icmp_ule_s16_vv491legalized:       true492regBankSelected: true493 494body: |495  bb.0:496    liveins:  $vgpr0, $vgpr1497 498    ; WAVE64-LABEL: name: icmp_ule_s16_vv499    ; WAVE64: liveins: $vgpr0, $vgpr1500    ; WAVE64-NEXT: {{  $}}501    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0502    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1503    ; WAVE64-NEXT: [[V_CMP_LE_U16_e64_:%[0-9]+]]:sreg_64 = V_CMP_LE_U16_e64 [[COPY]], [[COPY1]], implicit $exec504    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_U16_e64_]]505    ;506    ; WAVE32-LABEL: name: icmp_ule_s16_vv507    ; WAVE32: liveins: $vgpr0, $vgpr1508    ; WAVE32-NEXT: {{  $}}509    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0510    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1511    ; WAVE32-NEXT: [[V_CMP_LE_U16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LE_U16_e64 [[COPY]], [[COPY1]], implicit $exec512    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_U16_e64_]]513    ;514    ; GFX11-TRUE16-LABEL: name: icmp_ule_s16_vv515    ; GFX11-TRUE16: liveins: $vgpr0, $vgpr1516    ; GFX11-TRUE16-NEXT: {{  $}}517    ; GFX11-TRUE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0518    ; GFX11-TRUE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1519    ; GFX11-TRUE16-NEXT: [[COPY2:%[0-9]+]]:vgpr_16 = COPY [[COPY]].lo16520    ; GFX11-TRUE16-NEXT: [[COPY3:%[0-9]+]]:vgpr_16 = COPY [[COPY1]].lo16521    ; GFX11-TRUE16-NEXT: [[V_CMP_LE_U16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LE_U16_t16_e64 0, [[COPY2]], 0, [[COPY3]], 0, implicit $exec522    ; GFX11-TRUE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_U16_t16_e64_]]523    ;524    ; GFX11-FAKE16-LABEL: name: icmp_ule_s16_vv525    ; GFX11-FAKE16: liveins: $vgpr0, $vgpr1526    ; GFX11-FAKE16-NEXT: {{  $}}527    ; GFX11-FAKE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0528    ; GFX11-FAKE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1529    ; GFX11-FAKE16-NEXT: [[V_CMP_LE_U16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LE_U16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec530    ; GFX11-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_U16_fake16_e64_]]531    ;532    ; GFX12-TRUE16-LABEL: name: icmp_ule_s16_vv533    ; GFX12-TRUE16: liveins: $vgpr0, $vgpr1534    ; GFX12-TRUE16-NEXT: {{  $}}535    ; GFX12-TRUE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0536    ; GFX12-TRUE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1537    ; GFX12-TRUE16-NEXT: [[COPY2:%[0-9]+]]:vgpr_16 = COPY [[COPY]].lo16538    ; GFX12-TRUE16-NEXT: [[COPY3:%[0-9]+]]:vgpr_16 = COPY [[COPY1]].lo16539    ; GFX12-TRUE16-NEXT: [[V_CMP_LE_U16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LE_U16_t16_e64 0, [[COPY2]], 0, [[COPY3]], 0, implicit $exec540    ; GFX12-TRUE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_U16_t16_e64_]]541    ;542    ; GFX12-FAKE16-LABEL: name: icmp_ule_s16_vv543    ; GFX12-FAKE16: liveins: $vgpr0, $vgpr1544    ; GFX12-FAKE16-NEXT: {{  $}}545    ; GFX12-FAKE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0546    ; GFX12-FAKE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1547    ; GFX12-FAKE16-NEXT: [[V_CMP_LE_U16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LE_U16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec548    ; GFX12-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_U16_fake16_e64_]]549    %0:vgpr(s32) = COPY $vgpr0550    %1:vgpr(s32) = COPY $vgpr1551    %2:vgpr(s16) = G_TRUNC %0552    %3:vgpr(s16) = G_TRUNC %1553    %4:vcc(s1) = G_ICMP intpred(ule), %2, %3554    S_ENDPGM 0, implicit %4555...556 557