220 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -O0 -run-pass=legalizer -global-isel-abort=0 -o - %s | FileCheck %s3 4---5name: test_ptrtoint_p0_to_s646body: |7 bb.0:8 liveins: $vgpr0_vgpr19 10 ; CHECK-LABEL: name: test_ptrtoint_p0_to_s6411 ; CHECK: liveins: $vgpr0_vgpr112 ; CHECK-NEXT: {{ $}}13 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr114 ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:_(s64) = G_PTRTOINT [[COPY]](p0)15 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[PTRTOINT]](s64)16 %0:_(p0) = COPY $vgpr0_vgpr117 %1:_(s64) = G_PTRTOINT %018 $vgpr0_vgpr1 = COPY %119...20 21---22name: test_ptrtoint_p1_to_s6423body: |24 bb.0:25 liveins: $vgpr0_vgpr126 27 ; CHECK-LABEL: name: test_ptrtoint_p1_to_s6428 ; CHECK: liveins: $vgpr0_vgpr129 ; CHECK-NEXT: {{ $}}30 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr131 ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:_(s64) = G_PTRTOINT [[COPY]](p1)32 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[PTRTOINT]](s64)33 %0:_(p1) = COPY $vgpr0_vgpr134 %1:_(s64) = G_PTRTOINT %035 $vgpr0_vgpr1 = COPY %136...37 38---39name: test_ptrtoint_p4_to_s6440body: |41 bb.0:42 liveins: $vgpr0_vgpr143 44 ; CHECK-LABEL: name: test_ptrtoint_p4_to_s6445 ; CHECK: liveins: $vgpr0_vgpr146 ; CHECK-NEXT: {{ $}}47 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $vgpr0_vgpr148 ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:_(s64) = G_PTRTOINT [[COPY]](p4)49 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[PTRTOINT]](s64)50 %0:_(p4) = COPY $vgpr0_vgpr151 %1:_(s64) = G_PTRTOINT %052 $vgpr0_vgpr1 = COPY %153...54 55---56name: test_ptrtoint_p3_to_s3257body: |58 bb.0:59 liveins: $vgpr060 61 ; CHECK-LABEL: name: test_ptrtoint_p3_to_s3262 ; CHECK: liveins: $vgpr063 ; CHECK-NEXT: {{ $}}64 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr065 ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:_(s32) = G_PTRTOINT [[COPY]](p3)66 ; CHECK-NEXT: $vgpr0 = COPY [[PTRTOINT]](s32)67 %0:_(p3) = COPY $vgpr068 %1:_(s32) = G_PTRTOINT %069 $vgpr0 = COPY %170...71 72---73name: test_ptrtoint_p5_to_s3274body: |75 bb.0:76 liveins: $vgpr077 78 ; CHECK-LABEL: name: test_ptrtoint_p5_to_s3279 ; CHECK: liveins: $vgpr080 ; CHECK-NEXT: {{ $}}81 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr082 ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:_(s32) = G_PTRTOINT [[COPY]](p5)83 ; CHECK-NEXT: $vgpr0 = COPY [[PTRTOINT]](s32)84 %0:_(p5) = COPY $vgpr085 %1:_(s32) = G_PTRTOINT %086 $vgpr0 = COPY %187...88 89---90name: test_ptrtoint_p999_to_s6491body: |92 bb.0:93 liveins: $vgpr0_vgpr194 95 ; CHECK-LABEL: name: test_ptrtoint_p999_to_s6496 ; CHECK: liveins: $vgpr0_vgpr197 ; CHECK-NEXT: {{ $}}98 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p999) = COPY $vgpr0_vgpr199 ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:_(s64) = G_PTRTOINT [[COPY]](p999)100 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[PTRTOINT]](s64)101 %0:_(p999) = COPY $vgpr0_vgpr1102 %1:_(s64) = G_PTRTOINT %0103 $vgpr0_vgpr1 = COPY %1104...105 106---107name: test_ptrtoint_p0_to_s32108body: |109 bb.0:110 liveins: $vgpr0_vgpr1111 112 ; CHECK-LABEL: name: test_ptrtoint_p0_to_s32113 ; CHECK: liveins: $vgpr0_vgpr1114 ; CHECK-NEXT: {{ $}}115 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1116 ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:_(s64) = G_PTRTOINT [[COPY]](p0)117 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[PTRTOINT]](s64)118 ; CHECK-NEXT: $vgpr0 = COPY [[TRUNC]](s32)119 %0:_(p0) = COPY $vgpr0_vgpr1120 %1:_(s32) = G_PTRTOINT %0121 $vgpr0 = COPY %1122...123 124---125name: test_ptrtoint_p0_to_s128126body: |127 bb.0:128 liveins: $vgpr0_vgpr1129 130 ; CHECK-LABEL: name: test_ptrtoint_p0_to_s128131 ; CHECK: liveins: $vgpr0_vgpr1132 ; CHECK-NEXT: {{ $}}133 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1134 ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:_(s64) = G_PTRTOINT [[COPY]](p0)135 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0136 ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[PTRTOINT]](s64), [[C]](s64)137 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[MV]](s128)138 %0:_(p0) = COPY $vgpr0_vgpr1139 %1:_(s128) = G_PTRTOINT %0140 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1141...142 143---144name: test_ptrtoint_v2p0_to_v2s64145body: |146 bb.0:147 liveins: $vgpr0_vgpr1_vgpr2_vgpr3148 149 ; CHECK-LABEL: name: test_ptrtoint_v2p0_to_v2s64150 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3151 ; CHECK-NEXT: {{ $}}152 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x p0>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3153 ; CHECK-NEXT: [[UV:%[0-9]+]]:_(p0), [[UV1:%[0-9]+]]:_(p0) = G_UNMERGE_VALUES [[COPY]](<2 x p0>)154 ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:_(s64) = G_PTRTOINT [[UV]](p0)155 ; CHECK-NEXT: [[PTRTOINT1:%[0-9]+]]:_(s64) = G_PTRTOINT [[UV1]](p0)156 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s64>) = G_BUILD_VECTOR [[PTRTOINT]](s64), [[PTRTOINT1]](s64)157 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x s64>)158 %0:_(<2 x p0>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3159 %1:_(<2 x s64>) = G_PTRTOINT %0160 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1161...162 163---164name: test_ptrtoint_v2s32_to_v2p0165body: |166 bb.0:167 liveins: $vgpr0_vgpr1_vgpr2_vgpr3168 169 ; CHECK-LABEL: name: test_ptrtoint_v2s32_to_v2p0170 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3171 ; CHECK-NEXT: {{ $}}172 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x p0>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3173 ; CHECK-NEXT: [[UV:%[0-9]+]]:_(p0), [[UV1:%[0-9]+]]:_(p0) = G_UNMERGE_VALUES [[COPY]](<2 x p0>)174 ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:_(s64) = G_PTRTOINT [[UV]](p0)175 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[PTRTOINT]](s64)176 ; CHECK-NEXT: [[PTRTOINT1:%[0-9]+]]:_(s64) = G_PTRTOINT [[UV1]](p0)177 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[PTRTOINT1]](s64)178 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[TRUNC]](s32), [[TRUNC1]](s32)179 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)180 %0:_(<2 x p0>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3181 %1:_(<2 x s32>) = G_PTRTOINT %0182 $vgpr0_vgpr1 = COPY %1183...184 185---186name: test_ptrtoint_p3_to_s29187body: |188 bb.0:189 liveins: $vgpr0190 191 ; CHECK-LABEL: name: test_ptrtoint_p3_to_s29192 ; CHECK: liveins: $vgpr0193 ; CHECK-NEXT: {{ $}}194 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr0195 ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:_(s32) = G_PTRTOINT [[COPY]](p3)196 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s29) = G_TRUNC [[PTRTOINT]](s32)197 ; CHECK-NEXT: S_ENDPGM 0, implicit [[TRUNC]](s29)198 %0:_(p3) = COPY $vgpr0199 %1:_(s29) = G_PTRTOINT %0200 S_ENDPGM 0, implicit %1201...202 203---204name: test_ptrtoint_p3_to_s33205body: |206 bb.0:207 liveins: $vgpr0208 209 ; CHECK-LABEL: name: test_ptrtoint_p3_to_s33210 ; CHECK: liveins: $vgpr0211 ; CHECK-NEXT: {{ $}}212 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr0213 ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:_(s32) = G_PTRTOINT [[COPY]](p3)214 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s33) = G_ZEXT [[PTRTOINT]](s32)215 ; CHECK-NEXT: S_ENDPGM 0, implicit [[ZEXT]](s33)216 %0:_(p3) = COPY $vgpr0217 %1:_(s33) = G_PTRTOINT %0218 S_ENDPGM 0, implicit %1219...220