SPU LLVM: Reneable icelake shufb paths

- The previous code works just fine
This commit is contained in:
Malcolm Jestadt 2022-06-04 20:11:22 -04:00 committed by Ivan
parent 6c315e8aee
commit 1227b0a633

View File

@ -7695,7 +7695,7 @@ public:
if (auto [ok, bs] = match_expr(b, byteswap(match<u8[16]>())); ok) if (auto [ok, bs] = match_expr(b, byteswap(match<u8[16]>())); ok)
{ {
// Undo endian swapping, and rely on pshufb/vperm2b to re-reverse endianness // Undo endian swapping, and rely on pshufb/vperm2b to re-reverse endianness
if (false) if (m_use_avx512_icl)
{ {
if (perm_only) if (perm_only)
{ {
@ -7703,7 +7703,7 @@ public:
return; return;
} }
const auto m = gf2p8affineqb(c, build<u8[16]>(0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40), 0x7f); const auto m = gf2p8affineqb(c, build<u8[16]>(0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20), 0x7f);
const auto mm = select(noncast<s8[16]>(m) >= 0, splat<u8[16]>(0), m); const auto mm = select(noncast<s8[16]>(m) >= 0, splat<u8[16]>(0), m);
const auto ab = vperm2b256to128(as, bs, c); const auto ab = vperm2b256to128(as, bs, c);
set_vr(op.rt4, select(noncast<s8[16]>(c) >= 0, ab, mm)); set_vr(op.rt4, select(noncast<s8[16]>(c) >= 0, ab, mm));
@ -7757,7 +7757,7 @@ public:
} }
} }
if (false) if (m_use_avx512_icl)
{ {
if (perm_only) if (perm_only)
{ {
@ -7765,7 +7765,7 @@ public:
return; return;
} }
const auto m = gf2p8affineqb(c, build<u8[16]>(0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40), 0x7f); const auto m = gf2p8affineqb(c, build<u8[16]>(0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20), 0x7f);
const auto mm = select(noncast<s8[16]>(m) >= 0, splat<u8[16]>(0), m); const auto mm = select(noncast<s8[16]>(m) >= 0, splat<u8[16]>(0), m);
const auto cr = eval(~c); const auto cr = eval(~c);
const auto ab = vperm2b256to128(b, a, cr); const auto ab = vperm2b256to128(b, a, cr);