248 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -O0 -run-pass=legalizer %s -o - | FileCheck %s3 4---5name: ptrmask_p1_s166body: |7 bb.0:8 liveins: $vgpr0_vgpr1, $vgpr29 10 ; CHECK-LABEL: name: ptrmask_p1_s1611 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr212 ; CHECK-NEXT: {{ $}}13 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr114 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr215 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[COPY1]](s32)16 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 6553517 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[ANYEXT]], [[C]]18 ; CHECK-NEXT: [[PTRMASK:%[0-9]+]]:_(p1) = G_PTRMASK [[COPY]], [[AND]](s64)19 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[PTRMASK]](p1)20 %0:_(p1) = COPY $vgpr0_vgpr121 %1:_(s32) = COPY $vgpr222 %2:_(s16) = G_TRUNC %123 %3:_(p1) = G_PTRMASK %0, %224 $vgpr0_vgpr1 = COPY %325...26 27---28name: ptrmask_p1_s3229body: |30 bb.0:31 liveins: $vgpr0_vgpr1, $vgpr232 33 ; CHECK-LABEL: name: ptrmask_p1_s3234 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr235 ; CHECK-NEXT: {{ $}}36 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr137 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr238 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY1]](s32)39 ; CHECK-NEXT: [[PTRMASK:%[0-9]+]]:_(p1) = G_PTRMASK [[COPY]], [[ZEXT]](s64)40 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[PTRMASK]](p1)41 %0:_(p1) = COPY $vgpr0_vgpr142 %1:_(s32) = COPY $vgpr243 %2:_(p1) = G_PTRMASK %0, %144 $vgpr0_vgpr1 = COPY %245...46 47---48name: ptrmask_p1_s6449body: |50 bb.0:51 liveins: $vgpr0_vgpr1, $vgpr2_vgpr352 53 ; CHECK-LABEL: name: ptrmask_p1_s6454 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr355 ; CHECK-NEXT: {{ $}}56 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr157 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr358 ; CHECK-NEXT: [[PTRMASK:%[0-9]+]]:_(p1) = G_PTRMASK [[COPY]], [[COPY1]](s64)59 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[PTRMASK]](p1)60 %0:_(p1) = COPY $vgpr0_vgpr161 %1:_(s64) = COPY $vgpr2_vgpr362 %2:_(p1) = G_PTRMASK %0, %163 $vgpr0_vgpr1 = COPY %264...65 66---67name: ptrmask_p1_s9668body: |69 bb.0:70 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr471 72 ; CHECK-LABEL: name: ptrmask_p1_s9673 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr474 ; CHECK-NEXT: {{ $}}75 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr176 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s96) = COPY $vgpr2_vgpr3_vgpr477 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s64) = G_TRUNC [[COPY1]](s96)78 ; CHECK-NEXT: [[PTRMASK:%[0-9]+]]:_(p1) = G_PTRMASK [[COPY]], [[TRUNC]](s64)79 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[PTRMASK]](p1)80 %0:_(p1) = COPY $vgpr0_vgpr181 %1:_(s96) = COPY $vgpr2_vgpr3_vgpr482 %2:_(p1) = G_PTRMASK %0, %183 $vgpr0_vgpr1 = COPY %284...85 86---87name: ptrmask_p0_s1688body: |89 bb.0:90 liveins: $vgpr0_vgpr1, $vgpr291 92 ; CHECK-LABEL: name: ptrmask_p0_s1693 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr294 ; CHECK-NEXT: {{ $}}95 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr196 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr297 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[COPY1]](s32)98 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 6553599 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[ANYEXT]], [[C]]100 ; CHECK-NEXT: [[PTRMASK:%[0-9]+]]:_(p0) = G_PTRMASK [[COPY]], [[AND]](s64)101 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[PTRMASK]](p0)102 %0:_(p0) = COPY $vgpr0_vgpr1103 %1:_(s32) = COPY $vgpr2104 %2:_(s16) = G_TRUNC %1105 %3:_(p0) = G_PTRMASK %0, %2106 $vgpr0_vgpr1 = COPY %3107...108 109---110name: ptrmask_p0_s32111body: |112 bb.0:113 liveins: $vgpr0_vgpr1, $vgpr2114 115 ; CHECK-LABEL: name: ptrmask_p0_s32116 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2117 ; CHECK-NEXT: {{ $}}118 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1119 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr2120 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY1]](s32)121 ; CHECK-NEXT: [[PTRMASK:%[0-9]+]]:_(p0) = G_PTRMASK [[COPY]], [[ZEXT]](s64)122 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[PTRMASK]](p0)123 %0:_(p0) = COPY $vgpr0_vgpr1124 %1:_(s32) = COPY $vgpr2125 %2:_(p0) = G_PTRMASK %0, %1126 $vgpr0_vgpr1 = COPY %2127...128 129---130name: ptrmask_p0_s64131body: |132 bb.0:133 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3134 135 ; CHECK-LABEL: name: ptrmask_p0_s64136 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3137 ; CHECK-NEXT: {{ $}}138 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1139 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3140 ; CHECK-NEXT: [[PTRMASK:%[0-9]+]]:_(p0) = G_PTRMASK [[COPY]], [[COPY1]](s64)141 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[PTRMASK]](p0)142 %0:_(p0) = COPY $vgpr0_vgpr1143 %1:_(s64) = COPY $vgpr2_vgpr3144 %2:_(p0) = G_PTRMASK %0, %1145 $vgpr0_vgpr1 = COPY %2146...147 148---149name: ptrmask_p0_s96150body: |151 bb.0:152 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4153 154 ; CHECK-LABEL: name: ptrmask_p0_s96155 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4156 ; CHECK-NEXT: {{ $}}157 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1158 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s96) = COPY $vgpr2_vgpr3_vgpr4159 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s64) = G_TRUNC [[COPY1]](s96)160 ; CHECK-NEXT: [[PTRMASK:%[0-9]+]]:_(p0) = G_PTRMASK [[COPY]], [[TRUNC]](s64)161 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[PTRMASK]](p0)162 %0:_(p0) = COPY $vgpr0_vgpr1163 %1:_(s96) = COPY $vgpr2_vgpr3_vgpr4164 %2:_(p0) = G_PTRMASK %0, %1165 $vgpr0_vgpr1 = COPY %2166...167 168---169name: ptrmask_p3_s16170body: |171 bb.0:172 liveins: $vgpr0, $vgpr1173 174 ; CHECK-LABEL: name: ptrmask_p3_s16175 ; CHECK: liveins: $vgpr0, $vgpr1176 ; CHECK-NEXT: {{ $}}177 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr0178 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1179 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535180 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]181 ; CHECK-NEXT: [[PTRMASK:%[0-9]+]]:_(p3) = G_PTRMASK [[COPY]], [[AND]](s32)182 ; CHECK-NEXT: $vgpr0 = COPY [[PTRMASK]](p3)183 %0:_(p3) = COPY $vgpr0184 %1:_(s32) = COPY $vgpr1185 %2:_(s16) = G_TRUNC %1186 %3:_(p3) = G_PTRMASK %0, %2187 $vgpr0 = COPY %3188...189 190---191name: ptrmask_p3_s32192body: |193 bb.0:194 liveins: $vgpr0, $vgpr1195 196 ; CHECK-LABEL: name: ptrmask_p3_s32197 ; CHECK: liveins: $vgpr0, $vgpr1198 ; CHECK-NEXT: {{ $}}199 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr0200 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1201 ; CHECK-NEXT: [[PTRMASK:%[0-9]+]]:_(p3) = G_PTRMASK [[COPY]], [[COPY1]](s32)202 ; CHECK-NEXT: $vgpr0 = COPY [[PTRMASK]](p3)203 %0:_(p3) = COPY $vgpr0204 %1:_(s32) = COPY $vgpr1205 %2:_(p3) = G_PTRMASK %0, %1206 $vgpr0 = COPY %2207...208 209---210name: ptrmask_p3_s64211body: |212 bb.0:213 liveins: $vgpr0, $vgpr1_vgpr2214 215 ; CHECK-LABEL: name: ptrmask_p3_s64216 ; CHECK: liveins: $vgpr0, $vgpr1_vgpr2217 ; CHECK-NEXT: {{ $}}218 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr0219 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr1_vgpr2220 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)221 ; CHECK-NEXT: [[PTRMASK:%[0-9]+]]:_(p3) = G_PTRMASK [[COPY]], [[TRUNC]](s32)222 ; CHECK-NEXT: $vgpr0 = COPY [[PTRMASK]](p3)223 %0:_(p3) = COPY $vgpr0224 %1:_(s64) = COPY $vgpr1_vgpr2225 %2:_(p3) = G_PTRMASK %0, %1226 $vgpr0 = COPY %2227...228 229---230name: ptrmask_p3_s96231body: |232 bb.0:233 liveins: $vgpr0, $vgpr1_vgpr2_vgpr3234 235 ; CHECK-LABEL: name: ptrmask_p3_s96236 ; CHECK: liveins: $vgpr0, $vgpr1_vgpr2_vgpr3237 ; CHECK-NEXT: {{ $}}238 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr0239 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s96) = COPY $vgpr1_vgpr2_vgpr3240 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s96)241 ; CHECK-NEXT: [[PTRMASK:%[0-9]+]]:_(p3) = G_PTRMASK [[COPY]], [[TRUNC]](s32)242 ; CHECK-NEXT: $vgpr0 = COPY [[PTRMASK]](p3)243 %0:_(p3) = COPY $vgpr0244 %1:_(s96) = COPY $vgpr1_vgpr2_vgpr3245 %2:_(p3) = G_PTRMASK %0, %1246 $vgpr0 = COPY %2247...248