Index: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp =================================================================== --- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -2352,7 +2352,7 @@ break; SDValue N0 = Op.getOperand(0); - Known = computeKnownBits(N0, DemandedElts, Depth + 1); + Known = computeKnownBits(N0, Depth + 1); if (N0.getValueSizeInBits() != BitWidth) Known = Known.trunc(BitWidth); Index: llvm/trunk/test/CodeGen/AMDGPU/computeKnownBits-scalar-to-vector-crash.ll =================================================================== --- llvm/trunk/test/CodeGen/AMDGPU/computeKnownBits-scalar-to-vector-crash.ll +++ llvm/trunk/test/CodeGen/AMDGPU/computeKnownBits-scalar-to-vector-crash.ll @@ -0,0 +1,11 @@ +; RUN: llc -march=amdgcn -mcpu=gfx802 -verify-machineinstrs < %s | FileCheck %s + +; CHECK: s_waitcnt +define <2 x i16> @main(<2 x float>) #0 { + %2 = bitcast <2 x float> %0 to <4 x i16> + %3 = shufflevector <4 x i16> %2, <4 x i16> undef, <2 x i32> + %4 = extractelement <4 x i16> %2, i32 0 + %5 = insertelement <2 x i16> %3, i16 %4, i32 0 + ret <2 x i16> %5 +} +