111 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass="amdgpu-regbankselect,amdgpu-regbanklegalize" %s -verify-machineinstrs -o - | FileCheck %s3 4---5name: trunc_i64_to_i32_s6legalized: true7 8body: |9 bb.0:10 liveins: $sgpr0_sgpr111 ; CHECK-LABEL: name: trunc_i64_to_i32_s12 ; CHECK: liveins: $sgpr0_sgpr113 ; CHECK-NEXT: {{ $}}14 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr115 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s32) = G_TRUNC [[COPY]](s64)16 %0:_(s64) = COPY $sgpr0_sgpr117 %1:_(s32) = G_TRUNC %018...19 20---21name: trunc_i64_to_i32_v22legalized: true23 24body: |25 bb.0:26 liveins: $vgpr0_vgpr127 ; CHECK-LABEL: name: trunc_i64_to_i32_v28 ; CHECK: liveins: $vgpr0_vgpr129 ; CHECK-NEXT: {{ $}}30 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr131 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s32) = G_TRUNC [[COPY]](s64)32 %0:_(s64) = COPY $vgpr0_vgpr133 %1:_(s32) = G_TRUNC %034...35---36name: trunc_i64_to_i1_s37legalized: true38 39body: |40 bb.0:41 liveins: $sgpr0_sgpr142 ; CHECK-LABEL: name: trunc_i64_to_i1_s43 ; CHECK: liveins: $sgpr0_sgpr144 ; CHECK-NEXT: {{ $}}45 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr146 ; CHECK-NEXT: [[UV:%[0-9]+]]:sgpr(s32), [[UV1:%[0-9]+]]:sgpr(s32) = G_UNMERGE_VALUES [[COPY]](s64)47 %0:_(s64) = COPY $sgpr0_sgpr148 %1:_(s1) = G_TRUNC %049 %2:_(s32) = G_ANYEXT %150...51 52---53name: trunc_i64_to_i1_v54legalized: true55 56body: |57 bb.0:58 liveins: $vgpr0_vgpr159 ; CHECK-LABEL: name: trunc_i64_to_i1_v60 ; CHECK: liveins: $vgpr0_vgpr161 ; CHECK-NEXT: {{ $}}62 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr163 ; CHECK-NEXT: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY]](s64)64 ; CHECK-NEXT: [[C:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 165 ; CHECK-NEXT: [[AND:%[0-9]+]]:vgpr(s32) = G_AND [[UV]], [[C]]66 ; CHECK-NEXT: [[C1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 067 ; CHECK-NEXT: [[AND1:%[0-9]+]]:vgpr(s32) = G_AND [[UV1]], [[C1]]68 ; CHECK-NEXT: [[MV:%[0-9]+]]:vgpr(s64) = G_MERGE_VALUES [[AND]](s32), [[AND1]](s32)69 ; CHECK-NEXT: [[C2:%[0-9]+]]:vgpr(s64) = G_CONSTANT i64 070 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[MV]](s64), [[C2]]71 %0:_(s64) = COPY $vgpr0_vgpr172 %1:_(s1) = G_TRUNC %073...74 75---76name: trunc_i32_to_i1_s77legalized: true78 79body: |80 bb.0:81 liveins: $sgpr082 ; CHECK-LABEL: name: trunc_i32_to_i1_s83 ; CHECK: liveins: $sgpr084 ; CHECK-NEXT: {{ $}}85 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr086 ; CHECK-NEXT: S_ENDPGM 0, implicit [[COPY]](s32)87 %0:_(s32) = COPY $sgpr088 %1:_(s1) = G_TRUNC %089 %2:_(s32) = G_ANYEXT %190 S_ENDPGM 0, implicit %291...92 93---94name: trunc_i32_to_i1_v95legalized: true96 97body: |98 bb.0:99 liveins: $vgpr0100 ; CHECK-LABEL: name: trunc_i32_to_i1_v101 ; CHECK: liveins: $vgpr0102 ; CHECK-NEXT: {{ $}}103 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0104 ; CHECK-NEXT: [[C:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 1105 ; CHECK-NEXT: [[AND:%[0-9]+]]:vgpr(s32) = G_AND [[COPY]], [[C]]106 ; CHECK-NEXT: [[C1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 0107 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[AND]](s32), [[C1]]108 %0:_(s32) = COPY $vgpr0109 %1:_(s1) = G_TRUNC %0110...111