mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-21 20:12:56 +02:00
[AVX-512] Punt on fast-isel of truncates to i1 when AVX512 is enabled.
We should be masking the value and emitting a register copy like we do in non-fast isel. Instead we were just updating the value map and emitting nothing. After r298928 we started seeing cases where we would create a copy from GR8 to GR32 because the source register in a VK1 to GR32 copy was replaced by the GR8 going into a truncate. This fixes PR32451. llvm-svn: 298957
This commit is contained in:
parent
299bb34210
commit
c62d4ea689
@ -2512,7 +2512,8 @@ bool X86FastISel::X86SelectTrunc(const Instruction *I) {
|
||||
EVT DstVT = TLI.getValueType(DL, I->getType());
|
||||
|
||||
// This code only handles truncation to byte.
|
||||
if (DstVT != MVT::i8 && DstVT != MVT::i1)
|
||||
// TODO: Support truncate to i1 with AVX512.
|
||||
if (DstVT != MVT::i8 && (DstVT != MVT::i1 || Subtarget->hasAVX512()))
|
||||
return false;
|
||||
if (!TLI.isTypeLegal(SrcVT))
|
||||
return false;
|
||||
|
Loading…
Reference in New Issue
Block a user