diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-02-05 19:23:57 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-02-05 19:23:57 +0000 |
| commit | a3f9b71c09613fa51df44a6253afc52e5fff2947 (patch) | |
| tree | 58a2b50ef896d214c294d0d81e66fbfb17147e06 /llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp | |
| parent | 51358e45e23ea0889d11a91c4077bb3af406be55 (diff) | |
| download | bcm5719-llvm-a3f9b71c09613fa51df44a6253afc52e5fff2947.tar.gz bcm5719-llvm-a3f9b71c09613fa51df44a6253afc52e5fff2947.zip | |
AMDGPU: Fix assert on trunc from bitcast of build_vector
The v2i64 argument is lowered to a bitcast of v4i32 build_vector.
This would then attempt to use the i32-element as the source of the
vector truncate. This really would need to collect 2 elements from the
build_vector to produce the intended truncate.
llvm-svn: 353202
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp index a15b2b99220..0f0d877685d 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp @@ -3088,7 +3088,7 @@ SDValue AMDGPUTargetLowering::performTruncateCombine( SDValue Src = N->getOperand(0); // vt1 (truncate (bitcast (build_vector vt0:x, ...))) -> vt1 (bitcast vt0:x) - if (Src.getOpcode() == ISD::BITCAST) { + if (Src.getOpcode() == ISD::BITCAST && !VT.isVector()) { SDValue Vec = Src.getOperand(0); if (Vec.getOpcode() == ISD::BUILD_VECTOR) { SDValue Elt0 = Vec.getOperand(0); |

