@@ -1215,99 +1215,10 @@ define <512 x i8> @test_expandload_v512i8(ptr %base, <512 x i1> %mask, <512 x i8
12151215}
12161216
12171217; FIXME: Don't know how to make it legal.
1218- define <1024 x i8 > @test_expandload_v1024i8 (ptr %base , <1024 x i1 > %mask , <1024 x i8 > %passthru ) "target-features" ="+zvl1024b" {
1219- ; CHECK-RV32-LABEL: test_expandload_v1024i8:
1220- ; CHECK-RV32: # %bb.0:
1221- ; CHECK-RV32-NEXT: addi sp, sp, -16
1222- ; CHECK-RV32-NEXT: .cfi_def_cfa_offset 16
1223- ; CHECK-RV32-NEXT: csrr a1, vlenb
1224- ; CHECK-RV32-NEXT: slli a1, a1, 3
1225- ; CHECK-RV32-NEXT: sub sp, sp, a1
1226- ; CHECK-RV32-NEXT: .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x08, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 8 * vlenb
1227- ; CHECK-RV32-NEXT: vmv1r.v v7, v0
1228- ; CHECK-RV32-NEXT: li a1, 512
1229- ; CHECK-RV32-NEXT: vsetvli zero, a1, e8, m4, ta, ma
1230- ; CHECK-RV32-NEXT: vcpop.m a2, v0
1231- ; CHECK-RV32-NEXT: add a2, a0, a2
1232- ; CHECK-RV32-NEXT: li a3, 64
1233- ; CHECK-RV32-NEXT: vsetvli zero, a3, e8, m1, ta, ma
1234- ; CHECK-RV32-NEXT: vslidedown.vx v0, v0, a3
1235- ; CHECK-RV32-NEXT: vsetvli zero, a1, e16, m8, ta, ma
1236- ; CHECK-RV32-NEXT: viota.m v16, v0
1237- ; CHECK-RV32-NEXT: addi a3, sp, 16
1238- ; CHECK-RV32-NEXT: vs8r.v v16, (a3) # Unknown-size Folded Spill
1239- ; CHECK-RV32-NEXT: vsetvli zero, a1, e8, m8, ta, ma
1240- ; CHECK-RV32-NEXT: vslidedown.vx v24, v8, a1
1241- ; CHECK-RV32-NEXT: vl8r.v v16, (a3) # Unknown-size Folded Reload
1242- ; CHECK-RV32-NEXT: vsetvli zero, a1, e8, m4, ta, mu
1243- ; CHECK-RV32-NEXT: vluxei16.v v24, (a2), v16, v0.t
1244- ; CHECK-RV32-NEXT: vsetvli zero, zero, e16, m8, ta, ma
1245- ; CHECK-RV32-NEXT: viota.m v16, v7
1246- ; CHECK-RV32-NEXT: vmv1r.v v0, v7
1247- ; CHECK-RV32-NEXT: vsetvli zero, zero, e8, m4, ta, mu
1248- ; CHECK-RV32-NEXT: vluxei16.v v8, (a0), v16, v0.t
1249- ; CHECK-RV32-NEXT: li a0, 1024
1250- ; CHECK-RV32-NEXT: vsetvli zero, a0, e8, m8, ta, ma
1251- ; CHECK-RV32-NEXT: vslideup.vx v8, v24, a1
1252- ; CHECK-RV32-NEXT: csrr a0, vlenb
1253- ; CHECK-RV32-NEXT: slli a0, a0, 3
1254- ; CHECK-RV32-NEXT: add sp, sp, a0
1255- ; CHECK-RV32-NEXT: addi sp, sp, 16
1256- ; CHECK-RV32-NEXT: ret
1257- ;
1258- ; CHECK-RV64-LABEL: test_expandload_v1024i8:
1259- ; CHECK-RV64: # %bb.0:
1260- ; CHECK-RV64-NEXT: addi sp, sp, -16
1261- ; CHECK-RV64-NEXT: .cfi_def_cfa_offset 16
1262- ; CHECK-RV64-NEXT: csrr a1, vlenb
1263- ; CHECK-RV64-NEXT: slli a1, a1, 4
1264- ; CHECK-RV64-NEXT: sub sp, sp, a1
1265- ; CHECK-RV64-NEXT: .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x10, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 16 * vlenb
1266- ; CHECK-RV64-NEXT: vmv1r.v v7, v0
1267- ; CHECK-RV64-NEXT: li a1, 512
1268- ; CHECK-RV64-NEXT: vsetvli zero, a1, e8, m4, ta, ma
1269- ; CHECK-RV64-NEXT: vcpop.m a2, v0
1270- ; CHECK-RV64-NEXT: add a2, a0, a2
1271- ; CHECK-RV64-NEXT: li a3, 64
1272- ; CHECK-RV64-NEXT: vsetvli zero, a3, e8, m1, ta, ma
1273- ; CHECK-RV64-NEXT: vslidedown.vx v0, v0, a3
1274- ; CHECK-RV64-NEXT: vsetvli zero, a1, e16, m8, ta, ma
1275- ; CHECK-RV64-NEXT: viota.m v24, v0
1276- ; CHECK-RV64-NEXT: csrr a3, vlenb
1277- ; CHECK-RV64-NEXT: slli a3, a3, 3
1278- ; CHECK-RV64-NEXT: add a3, sp, a3
1279- ; CHECK-RV64-NEXT: addi a3, a3, 16
1280- ; CHECK-RV64-NEXT: vs8r.v v24, (a3) # Unknown-size Folded Spill
1281- ; CHECK-RV64-NEXT: vsetvli zero, a1, e8, m8, ta, ma
1282- ; CHECK-RV64-NEXT: vslidedown.vx v16, v8, a1
1283- ; CHECK-RV64-NEXT: addi a3, sp, 16
1284- ; CHECK-RV64-NEXT: vs8r.v v16, (a3) # Unknown-size Folded Spill
1285- ; CHECK-RV64-NEXT: csrr a3, vlenb
1286- ; CHECK-RV64-NEXT: slli a3, a3, 3
1287- ; CHECK-RV64-NEXT: add a3, sp, a3
1288- ; CHECK-RV64-NEXT: addi a3, a3, 16
1289- ; CHECK-RV64-NEXT: vl8r.v v24, (a3) # Unknown-size Folded Reload
1290- ; CHECK-RV64-NEXT: addi a3, sp, 16
1291- ; CHECK-RV64-NEXT: vl8r.v v16, (a3) # Unknown-size Folded Reload
1292- ; CHECK-RV64-NEXT: vsetvli zero, a1, e8, m4, ta, mu
1293- ; CHECK-RV64-NEXT: vluxei16.v v16, (a2), v24, v0.t
1294- ; CHECK-RV64-NEXT: vmv.v.v v24, v16
1295- ; CHECK-RV64-NEXT: vsetvli zero, zero, e16, m8, ta, ma
1296- ; CHECK-RV64-NEXT: viota.m v16, v7
1297- ; CHECK-RV64-NEXT: vmv1r.v v0, v7
1298- ; CHECK-RV64-NEXT: vsetvli zero, zero, e8, m4, ta, mu
1299- ; CHECK-RV64-NEXT: vluxei16.v v8, (a0), v16, v0.t
1300- ; CHECK-RV64-NEXT: li a0, 1024
1301- ; CHECK-RV64-NEXT: vsetvli zero, a0, e8, m8, ta, ma
1302- ; CHECK-RV64-NEXT: vslideup.vx v8, v24, a1
1303- ; CHECK-RV64-NEXT: csrr a0, vlenb
1304- ; CHECK-RV64-NEXT: slli a0, a0, 4
1305- ; CHECK-RV64-NEXT: add sp, sp, a0
1306- ; CHECK-RV64-NEXT: addi sp, sp, 16
1307- ; CHECK-RV64-NEXT: ret
1308- %res = call <1024 x i8 > @llvm.masked.expandload.v1024i8 (ptr align 1 %base , <1024 x i1 > %mask , <1024 x i8 > %passthru )
1309- ret <1024 x i8 > %res
1310- }
1218+ ; define <1024 x i8> @test_expandload_v1024i8(ptr %base, <1024 x i1> %mask, <1024 x i8> %passthru) "target-features"="+zvl1024b" {
1219+ ; %res = call <1024 x i8> @llvm.masked.expandload.v1024i8(ptr align 1 %base, <1024 x i1> %mask, <1024 x i8> %passthru)
1220+ ; ret <1024 x i8> %res
1221+ ; }
13111222
13121223declare <512 x i8 > @llvm.masked.expandload.v512i8 (ptr , <512 x i1 >, <512 x i8 >)
13131224declare <1024 x i8 > @llvm.masked.expandload.v1024i8 (ptr , <1024 x i1 >, <1024 x i8 >)
0 commit comments