222 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -O0 -run-pass=legalizer -o - %s | FileCheck %s3 4---5name: test_inttoptr_s64_to_p06body: |7 bb.0:8 liveins: $vgpr0_vgpr19 10 ; CHECK-LABEL: name: test_inttoptr_s64_to_p011 ; CHECK: liveins: $vgpr0_vgpr112 ; CHECK-NEXT: {{ $}}13 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr114 ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:_(p0) = G_INTTOPTR [[COPY]](s64)15 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[INTTOPTR]](p0)16 %0:_(s64) = COPY $vgpr0_vgpr117 %1:_(p0) = G_INTTOPTR %018 $vgpr0_vgpr1 = COPY %119...20 21---22name: test_inttoptr_s64_to_p123body: |24 bb.0:25 liveins: $vgpr0_vgpr126 27 ; CHECK-LABEL: name: test_inttoptr_s64_to_p128 ; CHECK: liveins: $vgpr0_vgpr129 ; CHECK-NEXT: {{ $}}30 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr131 ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:_(p1) = G_INTTOPTR [[COPY]](s64)32 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[INTTOPTR]](p1)33 %0:_(s64) = COPY $vgpr0_vgpr134 %1:_(p1) = G_INTTOPTR %035 $vgpr0_vgpr1 = COPY %136...37 38---39name: test_inttoptr_s64_to_p440body: |41 bb.0:42 liveins: $vgpr0_vgpr143 44 ; CHECK-LABEL: name: test_inttoptr_s64_to_p445 ; CHECK: liveins: $vgpr0_vgpr146 ; CHECK-NEXT: {{ $}}47 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr148 ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:_(p4) = G_INTTOPTR [[COPY]](s64)49 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[INTTOPTR]](p4)50 %0:_(s64) = COPY $vgpr0_vgpr151 %1:_(p4) = G_INTTOPTR %052 $vgpr0_vgpr1 = COPY %153...54 55---56name: test_inttoptr_s32_to_p357body: |58 bb.0:59 liveins: $vgpr060 61 ; CHECK-LABEL: name: test_inttoptr_s32_to_p362 ; CHECK: liveins: $vgpr063 ; CHECK-NEXT: {{ $}}64 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr065 ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:_(p3) = G_INTTOPTR [[COPY]](s32)66 ; CHECK-NEXT: $vgpr0 = COPY [[INTTOPTR]](p3)67 %0:_(s32) = COPY $vgpr068 %1:_(p3) = G_INTTOPTR %069 $vgpr0 = COPY %170...71 72---73name: test_inttoptr_s32_to_p574body: |75 bb.0:76 liveins: $vgpr077 78 ; CHECK-LABEL: name: test_inttoptr_s32_to_p579 ; CHECK: liveins: $vgpr080 ; CHECK-NEXT: {{ $}}81 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr082 ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:_(p5) = G_INTTOPTR [[COPY]](s32)83 ; CHECK-NEXT: $vgpr0 = COPY [[INTTOPTR]](p5)84 %0:_(s32) = COPY $vgpr085 %1:_(p5) = G_INTTOPTR %086 $vgpr0 = COPY %187...88 89---90name: test_inttoptr_s64_to_p99991body: |92 bb.0:93 liveins: $vgpr0_vgpr194 95 ; CHECK-LABEL: name: test_inttoptr_s64_to_p99996 ; CHECK: liveins: $vgpr0_vgpr197 ; CHECK-NEXT: {{ $}}98 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr199 ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:_(p999) = G_INTTOPTR [[COPY]](s64)100 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[INTTOPTR]](p999)101 %0:_(s64) = COPY $vgpr0_vgpr1102 %1:_(p999) = G_INTTOPTR %0103 $vgpr0_vgpr1 = COPY %1104...105 106---107name: test_inttoptr_s32_to_p0108body: |109 bb.0:110 liveins: $vgpr0111 112 ; CHECK-LABEL: name: test_inttoptr_s32_to_p0113 ; CHECK: liveins: $vgpr0114 ; CHECK-NEXT: {{ $}}115 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0116 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY]](s32)117 ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:_(p0) = G_INTTOPTR [[ZEXT]](s64)118 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[INTTOPTR]](p0)119 %0:_(s32) = COPY $vgpr0120 %1:_(p0) = G_INTTOPTR %0121 $vgpr0_vgpr1 = COPY %1122...123 124---125name: test_inttoptr_s128_to_p0126body: |127 bb.0:128 liveins: $vgpr0_vgpr1_vgpr2_vgpr3129 130 ; CHECK-LABEL: name: test_inttoptr_s128_to_p0131 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3132 ; CHECK-NEXT: {{ $}}133 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3134 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s64) = G_TRUNC [[COPY]](s128)135 ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:_(p0) = G_INTTOPTR [[TRUNC]](s64)136 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[INTTOPTR]](p0)137 %0:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3138 %1:_(p0) = G_INTTOPTR %0139 $vgpr0_vgpr1 = COPY %1140...141 142---143name: test_inttoptr_v2s64_to_v2p0144body: |145 bb.0:146 liveins: $vgpr0_vgpr1_vgpr2_vgpr3147 148 ; CHECK-LABEL: name: test_inttoptr_v2s64_to_v2p0149 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3150 ; CHECK-NEXT: {{ $}}151 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3152 ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s64), [[UV1:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY]](<2 x s64>)153 ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:_(p0) = G_INTTOPTR [[UV]](s64)154 ; CHECK-NEXT: [[INTTOPTR1:%[0-9]+]]:_(p0) = G_INTTOPTR [[UV1]](s64)155 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p0>) = G_BUILD_VECTOR [[INTTOPTR]](p0), [[INTTOPTR1]](p0)156 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x p0>)157 %0:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3158 %1:_(<2 x p0>) = G_INTTOPTR %0159 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1160...161 162---163name: test_inttoptr_v2s32_to_v2p0164body: |165 bb.0:166 liveins: $vgpr0_vgpr1167 168 ; CHECK-LABEL: name: test_inttoptr_v2s32_to_v2p0169 ; CHECK: liveins: $vgpr0_vgpr1170 ; CHECK-NEXT: {{ $}}171 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr1172 ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)173 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[UV]](s32)174 ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:_(p0) = G_INTTOPTR [[ZEXT]](s64)175 ; CHECK-NEXT: [[ZEXT1:%[0-9]+]]:_(s64) = G_ZEXT [[UV1]](s32)176 ; CHECK-NEXT: [[INTTOPTR1:%[0-9]+]]:_(p0) = G_INTTOPTR [[ZEXT1]](s64)177 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p0>) = G_BUILD_VECTOR [[INTTOPTR]](p0), [[INTTOPTR1]](p0)178 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x p0>)179 %0:_(<2 x s32>) = COPY $vgpr0_vgpr1180 %1:_(<2 x p0>) = G_INTTOPTR %0181 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1182...183 184---185name: test_inttoptr_s29_to_p3186body: |187 bb.0:188 liveins: $vgpr0189 190 ; CHECK-LABEL: name: test_inttoptr_s29_to_p3191 ; CHECK: liveins: $vgpr0192 ; CHECK-NEXT: {{ $}}193 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0194 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 536870911195 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]196 ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:_(p3) = G_INTTOPTR [[AND]](s32)197 ; CHECK-NEXT: S_ENDPGM 0, implicit [[INTTOPTR]](p3)198 %0:_(s32) = COPY $vgpr0199 %1:_(s29) = G_TRUNC %0200 %2:_(p3) = G_INTTOPTR %1201 S_ENDPGM 0, implicit %2202...203 204---205name: test_inttoptr_s33_to_p3206body: |207 bb.0:208 liveins: $vgpr0_vgpr1209 210 ; CHECK-LABEL: name: test_inttoptr_s33_to_p3211 ; CHECK: liveins: $vgpr0_vgpr1212 ; CHECK-NEXT: {{ $}}213 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1214 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)215 ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:_(p3) = G_INTTOPTR [[TRUNC]](s32)216 ; CHECK-NEXT: S_ENDPGM 0, implicit [[INTTOPTR]](p3)217 %0:_(s64) = COPY $vgpr0_vgpr1218 %1:_(s33) = G_TRUNC %0219 %2:_(p3) = G_INTTOPTR %1220 S_ENDPGM 0, implicit %2221...222