@@ -601,9 +601,18 @@ void emit_reorder_1d_tile(ngen::HW hw, GeneratorT *host,
601
601
ngen::Immediate::hf (0x7C01 ),
602
602
tmp2.subregister (0 , ngen::DataType::hf)(1 ),
603
603
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
+ }
607
616
host->mov (esize, d.reinterpret (0 , ngen::DataType::uw)(dst_stride),
608
617
tmp2.subregister (0 , ngen::DataType::uw)(1 ));
609
618
}
0 commit comments