Skip to content

Commit 4b25c38

Browse files
committed
fix(ptodsl): avoid helper ABI mismatch in predicate ST
1 parent 0dcad24 commit 4b25c38

1 file changed

Lines changed: 26 additions & 25 deletions

File tree

test/dsl-st/predicate_pack.py

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -82,37 +82,38 @@ def predicate_pack_part_kernel(
8282
addr=1024,
8383
valid_shape=[ROWS, ROW_BYTES],
8484
)
85+
src_ptr = pto.castptr(pto.ui64(0), pto.ptr(pto.ui8, "ub"))
86+
dst_ptr = pto.castptr(pto.ui64(1024), pto.ptr(pto.ui8, "ub"))
8587

8688
pto.tile.load(inp_part, src_tile)
8789
pto.tile.load(out_part, dst_tile)
8890
pto.set_flag("MTE2", "V", event_id=0)
8991
pto.wait_flag("MTE2", "V", event_id=0)
9092

91-
with pto.simd():
92-
seed = pto.pset_b8(pto.MaskPattern.ALL)
93-
src = pto.vlds(src_tile[0, 0:])
94-
active_b8 = pto.vcmp(src, src, seed, pto.CmpMode.EQ)
95-
active = pto.pbitcast(active_b8, pto.mask_b32)
96-
97-
packed_lo_same = pto.ppack(active, "LOWER")
98-
unpacked_lo_same = pto.punpack(packed_lo_same, "LOWER")
99-
packed_lo_b16 = pto.ppack(active, "LOWER", to_type=pto.mask_b16)
100-
unpacked_lo_b32 = pto.punpack(packed_lo_b16, "LOWER", to_type=pto.mask_b32)
101-
102-
packed_hi_same = pto.ppack(active, "HIGHER")
103-
unpacked_hi_same = pto.punpack(packed_hi_same, "HIGHER")
104-
packed_hi_b16 = pto.ppack(active, "HIGHER", to_type=pto.mask_b16)
105-
unpacked_hi_b32 = pto.punpack(packed_hi_b16, "HIGHER", to_type=pto.mask_b32)
106-
107-
pto.psts(active, dst_tile.as_ptr(), 0, dist="NORM")
108-
pto.psts(packed_lo_same, dst_tile.as_ptr(), ROW_BYTES, dist="NORM")
109-
pto.psts(unpacked_lo_same, dst_tile.as_ptr(), ROW_BYTES * 2, dist="NORM")
110-
pto.psts(packed_lo_b16, dst_tile.as_ptr(), ROW_BYTES * 3, dist="NORM")
111-
pto.psts(unpacked_lo_b32, dst_tile.as_ptr(), ROW_BYTES * 4, dist="NORM")
112-
pto.psts(packed_hi_same, dst_tile.as_ptr(), ROW_BYTES * 5, dist="NORM")
113-
pto.psts(unpacked_hi_same, dst_tile.as_ptr(), ROW_BYTES * 6, dist="NORM")
114-
pto.psts(packed_hi_b16, dst_tile.as_ptr(), ROW_BYTES * 7, dist="NORM")
115-
pto.psts(unpacked_hi_b32, dst_tile.as_ptr(), ROW_BYTES * 8, dist="NORM")
93+
seed = pto.pset_b8(pto.MaskPattern.ALL)
94+
src = pto.vlds(src_ptr, 0, pto.vreg_type(256, pto.ui8))
95+
active_b8 = pto.vcmp(src, src, seed, pto.CmpMode.EQ)
96+
active = pto.pbitcast(active_b8, pto.mask_b32)
97+
98+
packed_lo_same = pto.ppack(active, "LOWER")
99+
unpacked_lo_same = pto.punpack(packed_lo_same, "LOWER")
100+
packed_lo_b16 = pto.ppack(active, "LOWER", to_type=pto.mask_b16)
101+
unpacked_lo_b32 = pto.punpack(packed_lo_b16, "LOWER", to_type=pto.mask_b32)
102+
103+
packed_hi_same = pto.ppack(active, "HIGHER")
104+
unpacked_hi_same = pto.punpack(packed_hi_same, "HIGHER")
105+
packed_hi_b16 = pto.ppack(active, "HIGHER", to_type=pto.mask_b16)
106+
unpacked_hi_b32 = pto.punpack(packed_hi_b16, "HIGHER", to_type=pto.mask_b32)
107+
108+
pto.psts(active, dst_ptr, 0, dist="NORM")
109+
pto.psts(packed_lo_same, dst_ptr, ROW_BYTES, dist="NORM")
110+
pto.psts(unpacked_lo_same, dst_ptr, ROW_BYTES * 2, dist="NORM")
111+
pto.psts(packed_lo_b16, dst_ptr, ROW_BYTES * 3, dist="NORM")
112+
pto.psts(unpacked_lo_b32, dst_ptr, ROW_BYTES * 4, dist="NORM")
113+
pto.psts(packed_hi_same, dst_ptr, ROW_BYTES * 5, dist="NORM")
114+
pto.psts(unpacked_hi_same, dst_ptr, ROW_BYTES * 6, dist="NORM")
115+
pto.psts(packed_hi_b16, dst_ptr, ROW_BYTES * 7, dist="NORM")
116+
pto.psts(unpacked_hi_b32, dst_ptr, ROW_BYTES * 8, dist="NORM")
116117

117118
pto.set_flag("V", "MTE3", event_id=0)
118119
pto.wait_flag("V", "MTE3", event_id=0)

0 commit comments

Comments
 (0)