1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -march=amdgcn -mcpu=hawaii -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck -check-prefix=WAVE64 %s 3# RUN: llc -march=amdgcn -mcpu=gfx1010 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck -check-prefix=WAVE32 %s 4 5--- 6name: uitofp_s32_to_s32_vv 7legalized: true 8regBankSelected: true 9tracksRegLiveness: true 10 11body: | 12 bb.0: 13 liveins: $vgpr0 14 15 ; WAVE64-LABEL: name: uitofp_s32_to_s32_vv 16 ; WAVE64: liveins: $vgpr0 17 ; WAVE64: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 18 ; WAVE64: [[V_CVT_F32_U32_e64_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e64 [[COPY]], 0, 0, implicit $mode, implicit $exec 19 ; WAVE64: $vgpr0 = COPY [[V_CVT_F32_U32_e64_]] 20 ; WAVE32-LABEL: name: uitofp_s32_to_s32_vv 21 ; WAVE32: liveins: $vgpr0 22 ; WAVE32: $vcc_hi = IMPLICIT_DEF 23 ; WAVE32: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 24 ; WAVE32: [[V_CVT_F32_U32_e64_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e64 [[COPY]], 0, 0, implicit $mode, implicit $exec 25 ; WAVE32: $vgpr0 = COPY [[V_CVT_F32_U32_e64_]] 26 %0:vgpr(s32) = COPY $vgpr0 27 %1:vgpr(s32) = G_UITOFP %0 28 $vgpr0 = COPY %1 29... 30 31--- 32name: uitofp_s32_to_s32_vs 33legalized: true 34regBankSelected: true 35tracksRegLiveness: true 36 37body: | 38 bb.0: 39 liveins: $sgpr0 40 41 ; WAVE64-LABEL: name: uitofp_s32_to_s32_vs 42 ; WAVE64: liveins: $sgpr0 43 ; WAVE64: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 44 ; WAVE64: [[V_CVT_F32_U32_e64_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e64 [[COPY]], 0, 0, implicit $mode, implicit $exec 45 ; WAVE64: $vgpr0 = COPY [[V_CVT_F32_U32_e64_]] 46 ; WAVE32-LABEL: name: uitofp_s32_to_s32_vs 47 ; WAVE32: liveins: $sgpr0 48 ; WAVE32: $vcc_hi = IMPLICIT_DEF 49 ; WAVE32: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 50 ; WAVE32: [[V_CVT_F32_U32_e64_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e64 [[COPY]], 0, 0, implicit $mode, implicit $exec 51 ; WAVE32: $vgpr0 = COPY [[V_CVT_F32_U32_e64_]] 52 %0:sgpr(s32) = COPY $sgpr0 53 %1:vgpr(s32) = G_UITOFP %0 54 $vgpr0 = COPY %1 55... 56 57--- 58name: uitofp_s32_to_s16_vv 59legalized: true 60regBankSelected: true 61tracksRegLiveness: true 62 63body: | 64 bb.0: 65 liveins: $vgpr0 66 67 ; WAVE64-LABEL: name: uitofp_s32_to_s16_vv 68 ; WAVE64: liveins: $vgpr0 69 ; WAVE64: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 70 ; WAVE64: [[V_CVT_F32_U32_e32_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e32 [[COPY]], implicit $mode, implicit $exec 71 ; WAVE64: %1:vgpr_32 = nofpexcept V_CVT_F16_F32_e32 [[V_CVT_F32_U32_e32_]], implicit $mode, implicit $exec 72 ; WAVE64: $vgpr0 = COPY %1 73 ; WAVE32-LABEL: name: uitofp_s32_to_s16_vv 74 ; WAVE32: liveins: $vgpr0 75 ; WAVE32: $vcc_hi = IMPLICIT_DEF 76 ; WAVE32: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 77 ; WAVE32: [[V_CVT_F32_U32_e32_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e32 [[COPY]], implicit $mode, implicit $exec 78 ; WAVE32: %1:vgpr_32 = nofpexcept V_CVT_F16_F32_e32 [[V_CVT_F32_U32_e32_]], implicit $mode, implicit $exec 79 ; WAVE32: $vgpr0 = COPY %1 80 %0:vgpr(s32) = COPY $vgpr0 81 %1:vgpr(s16) = G_UITOFP %0 82 %2:vgpr(s32) = G_ANYEXT %1 83 $vgpr0 = COPY %2 84... 85 86--- 87name: uitofp_s32_to_s16_vs 88legalized: true 89regBankSelected: true 90tracksRegLiveness: true 91 92body: | 93 bb.0: 94 liveins: $sgpr0 95 96 ; WAVE64-LABEL: name: uitofp_s32_to_s16_vs 97 ; WAVE64: liveins: $sgpr0 98 ; WAVE64: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 99 ; WAVE64: [[V_CVT_F32_U32_e32_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e32 [[COPY]], implicit $mode, implicit $exec 100 ; WAVE64: %1:vgpr_32 = nofpexcept V_CVT_F16_F32_e32 [[V_CVT_F32_U32_e32_]], implicit $mode, implicit $exec 101 ; WAVE64: $vgpr0 = COPY %1 102 ; WAVE32-LABEL: name: uitofp_s32_to_s16_vs 103 ; WAVE32: liveins: $sgpr0 104 ; WAVE32: $vcc_hi = IMPLICIT_DEF 105 ; WAVE32: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 106 ; WAVE32: [[V_CVT_F32_U32_e32_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e32 [[COPY]], implicit $mode, implicit $exec 107 ; WAVE32: %1:vgpr_32 = nofpexcept V_CVT_F16_F32_e32 [[V_CVT_F32_U32_e32_]], implicit $mode, implicit $exec 108 ; WAVE32: $vgpr0 = COPY %1 109 %0:sgpr(s32) = COPY $sgpr0 110 %1:vgpr(s16) = G_UITOFP %0 111 %2:vgpr(s32) = G_ANYEXT %1 112 $vgpr0 = COPY %2 113... 114