Skip to content

Commit 652c192

Browse files
committed
xelp: jit: codegen: emulate bfn.0xCA
1 parent 45d7507 commit 652c192

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

src/gpu/intel/jit/codegen/reorder.hpp

+12-3
Original file line numberDiff line numberDiff line change
@@ -601,9 +601,18 @@ void emit_reorder_1d_tile(ngen::HW hw, GeneratorT *host,
601601
ngen::Immediate::hf(0x7C01),
602602
tmp2.subregister(0, ngen::DataType::hf)(1),
603603
tmp1.subregister(0, ngen::DataType::hf)(1));
604-
host->bfn(esize, 0xCA, tmp2.subregister(0, ngen::DataType::uw)(1),
605-
tmp2.subregister(0, ngen::DataType::uw)(1),
606-
tmp1.subregister(0, ngen::DataType::uw)(1), 0X8000);
604+
if (hw >= ngen::HW::XeHPG) {
605+
host->bfn(esize, 0xCA,
606+
tmp2.subregister(0, ngen::DataType::uw)(1),
607+
tmp2.subregister(0, ngen::DataType::uw)(1),
608+
tmp1.subregister(0, ngen::DataType::uw)(1), 0x8000);
609+
} else {
610+
host->and_(esize, tmp1.subregister(0, ngen::DataType::uw)(1),
611+
tmp1.subregister(0, ngen::DataType::uw)(1), 0x8000);
612+
host->or_(esize, tmp2.subregister(0, ngen::DataType::uw)(1),
613+
tmp2.subregister(0, ngen::DataType::uw)(1),
614+
tmp1.subregister(0, ngen::DataType::uw)(1));
615+
}
607616
host->mov(esize, d.reinterpret(0, ngen::DataType::uw)(dst_stride),
608617
tmp2.subregister(0, ngen::DataType::uw)(1));
609618
}

0 commit comments

Comments
 (0)