[llvm-bugs] [Bug 41419] New: [InstCombine] Assertion !isa<UndefValue>(Shuf.getOperand(1))
via llvm-bugs
llvm-bugs at lists.llvm.org
Sun Apr 7 12:32:07 PDT 2019
https://bugs.llvm.org/show_bug.cgi?id=41419
Bug ID: 41419
Summary: [InstCombine] Assertion
!isa<UndefValue>(Shuf.getOperand(1))
Product: libraries
Version: trunk
Hardware: PC
OS: Windows NT
Status: NEW
Severity: enhancement
Priority: P
Component: Common Code Generator Code
Assignee: unassignedbugs at nondot.org
Reporter: llvm-dev at redking.me.uk
CC: llvm-bugs at lists.llvm.org, spatel+llvm at rotateright.com
Reduced from https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14083:
opt -instcombine
opt:
/home/simon/LLVM/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp:1357:
llvm::Instruction* foldSelectShuffle(llvm::ShuffleVectorInst&,
llvm::InstCombiner::BuilderTy&, const llvm::DataLayout&): Assertion
`!isa<UndefValue>(Shuf.getOperand(1)) && "Not expecting undef shuffle operand
with select mask"' failed.
@spatel This might be related to D60048?
; ModuleID = 'bugpoint-reduced-simplified.bc'
source_filename = "llvm/test/Transforms/InstCombine/shuffle_select.ll"
target triple = "x86_64-unknown-linux-gnu"
declare <4 x i32> @add(<4 x i32>)
declare <4 x i32> @add_nuw_nsw(<4 x i32>)
declare <4 x i32> @add_undef_mask_elt(<4 x i32>)
declare <4 x i32> @add_nuw_nsw_undef_mask_elt(<4 x i32>)
declare <4 x i32> @sub(<4 x i32>)
declare <4 x i32> @mul(<4 x i32>)
declare <4 x i32> @shl(<4 x i32>)
declare <4 x i32> @shl_nsw(<4 x i32>)
declare <4 x i32> @shl_undef_mask_elt(<4 x i32>)
declare <4 x i32> @shl_nuw_undef_mask_elt(<4 x i32>)
define <4 x i32> @lshr_constant_op0(<4 x i32> %v) {
bb:
%s = shufflevector <4 x i32> %v, <4 x i32> undef, <4 x i32> <i32 4, i32 5,
i32 2, i32 7>
ret <4 x i32> %s
}
declare <4 x i32> @lshr_exact_constant_op0(<4 x i32>)
declare <4 x i32> @lshr_undef_mask_elt(<4 x i32>)
declare <4 x i32> @lshr_exact_undef_mask_elt(<4 x i32>)
declare <4 x i32> @lshr_constant_op1(<4 x i32>)
declare <3 x i32> @ashr(<3 x i32>)
declare <3 x i42> @and(<3 x i42>)
declare void @use_v4i32(<4 x i32>)
declare <4 x i32> @or(<4 x i32>)
declare <4 x i32> @xor(<4 x i32>)
declare <4 x i32> @udiv(<4 x i32>)
declare <4 x i32> @udiv_exact(<4 x i32>)
declare <4 x i32> @udiv_undef_mask_elt(<4 x i32>)
declare <4 x i32> @udiv_exact_undef_mask_elt(<4 x i32>)
declare <4 x i32> @sdiv(<4 x i32>)
declare <4 x i32> @sdiv_exact(<4 x i32>)
declare <4 x i32> @sdiv_undef_mask_elt(<4 x i32>)
declare <4 x i32> @sdiv_exact_undef_mask_elt(<4 x i32>)
declare <4 x i32> @urem(<4 x i32>)
declare <4 x i32> @urem_undef_mask_elt(<4 x i32>)
declare <4 x i32> @srem(<4 x i32>)
declare <4 x float> @fadd(<4 x float>)
declare <4 x double> @fsub(<4 x double>)
declare <4 x float> @fmul(<4 x float>)
declare <4 x double> @fdiv_constant_op0(<4 x double>)
declare <4 x double> @fdiv_constant_op1(<4 x double>)
declare <4 x double> @frem(<4 x double>)
declare <4 x i32> @add_add(<4 x i32>)
declare <4 x i32> @add_add_nsw(<4 x i32>)
declare <4 x i32> @add_add_undef_mask_elt(<4 x i32>)
declare <4 x i32> @add_add_nsw_undef_mask_elt(<4 x i32>)
declare <4 x i32> @sub_sub(<4 x i32>)
declare <4 x i32> @sub_sub_nuw(<4 x i32>)
declare <4 x i32> @sub_sub_undef_mask_elt(<4 x i32>)
declare <4 x i32> @sub_sub_nuw_undef_mask_elt(<4 x i32>)
declare <4 x i32> @mul_mul(<4 x i32>)
declare <4 x i32> @shl_shl(<4 x i32>)
declare <4 x i32> @shl_shl_nuw(<4 x i32>)
declare <4 x i32> @shl_shl_undef_mask_elt(<4 x i32>)
declare <4 x i32> @shl_shl_nuw_undef_mask_elt(<4 x i32>)
declare <4 x i32> @lshr_lshr(<4 x i32>)
declare <3 x i32> @ashr_ashr(<3 x i32>)
declare <3 x i42> @and_and(<3 x i42>)
declare <4 x i32> @or_or(<4 x i32>)
declare <4 x i32> @xor_xor(<4 x i32>)
declare <4 x i32> @udiv_udiv(<4 x i32>)
declare <4 x i32> @sdiv_sdiv(<4 x i32>)
declare <4 x i32> @sdiv_sdiv_exact(<4 x i32>)
declare <4 x i32> @sdiv_sdiv_undef_mask_elt(<4 x i32>)
declare <4 x i32> @sdiv_sdiv_exact_undef_mask_elt(<4 x i32>)
declare <4 x i32> @urem_urem(<4 x i32>)
declare <4 x i32> @urem_urem_undef_mask_elt(<4 x i32>)
declare <4 x i32> @srem_srem(<4 x i32>)
declare <4 x i32> @srem_srem_undef_mask_elt(<4 x i32>)
declare <4 x float> @fadd_fadd(<4 x float>)
declare <4 x double> @fsub_fsub(<4 x double>)
declare <4 x float> @fmul_fmul(<4 x float>)
declare <4 x double> @fdiv_fdiv(<4 x double>)
declare <4 x double> @frem_frem(<4 x double>)
declare <4 x i32> @add_2_vars(<4 x i32>, <4 x i32>)
declare <4 x i32> @sub_2_vars(<4 x i32>, <4 x i32>)
declare <4 x i32> @sub_2_vars_nsw(<4 x i32>, <4 x i32>)
declare <4 x i32> @sub_2_vars_undef_mask_elt(<4 x i32>, <4 x i32>)
declare <4 x i32> @sub_2_vars_nsw_undef_mask_elt(<4 x i32>, <4 x i32>)
declare <4 x i32> @mul_2_vars(<4 x i32>, <4 x i32>)
declare <4 x i32> @mul_2_vars_nuw(<4 x i32>, <4 x i32>)
declare <4 x i32> @mul_2_vars_undef_mask_elt(<4 x i32>, <4 x i32>)
declare <4 x i32> @mul_2_vars_nuw_undef_mask_elt(<4 x i32>, <4 x i32>)
declare <4 x i32> @shl_2_vars(<4 x i32>, <4 x i32>)
declare <4 x i32> @shl_2_vars_nsw(<4 x i32>, <4 x i32>)
declare <4 x i32> @shl_2_vars_undef_mask_elt(<4 x i32>, <4 x i32>)
declare <4 x i32> @shl_2_vars_nsw_undef_mask_elt(<4 x i32>, <4 x i32>)
declare <4 x i32> @lshr_2_vars(<4 x i32>, <4 x i32>)
declare <4 x i32> @lshr_2_vars_exact(<4 x i32>, <4 x i32>)
declare <4 x i32> @lshr_2_vars_undef_mask_elt(<4 x i32>, <4 x i32>)
declare <4 x i32> @lshr_2_vars_exact_undef_mask_elt(<4 x i32>, <4 x i32>)
declare <3 x i32> @ashr_2_vars(<3 x i32>, <3 x i32>)
declare <3 x i42> @and_2_vars(<3 x i42>, <3 x i42>)
declare <4 x i32> @or_2_vars(<4 x i32>, <4 x i32>)
declare <4 x i32> @xor_2_vars(<4 x i32>, <4 x i32>)
declare <4 x i32> @udiv_2_vars(<4 x i32>, <4 x i32>)
declare <4 x i32> @udiv_2_vars_exact(<4 x i32>, <4 x i32>)
declare <4 x i32> @udiv_2_vars_undef_mask_elt(<4 x i32>, <4 x i32>)
declare <4 x i32> @udiv_2_vars_exact_undef_mask_elt(<4 x i32>, <4 x i32>)
declare <4 x i32> @sdiv_2_vars(<4 x i32>, <4 x i32>)
declare <4 x i32> @sdiv_2_vars_exact(<4 x i32>, <4 x i32>)
declare <4 x i32> @sdiv_2_vars_undef_mask_elt(<4 x i32>, <4 x i32>)
declare <4 x i32> @sdiv_2_vars_exact_undef_mask_elt(<4 x i32>, <4 x i32>)
declare <4 x i32> @urem_2_vars(<4 x i32>, <4 x i32>)
declare <4 x i32> @srem_2_vars(<4 x i32>, <4 x i32>)
declare <4 x float> @fadd_2_vars(<4 x float>, <4 x float>)
declare <4 x double> @fsub_2_vars(<4 x double>, <4 x double>)
declare <4 x float> @fmul_2_vars(<4 x float>, <4 x float>)
declare <4 x double> @frem_2_vars(<4 x double>, <4 x double>)
declare <4 x double> @fdiv_2_vars(<4 x double>, <4 x double>)
declare <4 x i32> @mul_shl(<4 x i32>)
declare <4 x i32> @shl_mul(<4 x i32>)
declare <4 x i32> @mul_is_nop_shl(<4 x i32>)
declare <4 x i32> @shl_mul_not_constant_shift_amount(<4 x i32>)
declare <4 x i32> @mul_shl_2_vars(<4 x i32>, <4 x i32>)
declare <4 x i32> @shl_mul_2_vars(<4 x i32>, <4 x i32>)
declare <4 x i32> @add_or(<4 x i32>)
declare <4 x i8> @or_add(<4 x i8>)
declare <4 x i8> @or_add_not_enough_masking(<4 x i8>)
declare <4 x i32> @add_or_2_vars(<4 x i32>, <4 x i32>)
declare <4 x i8> @or_add_2_vars(<4 x i8>, <4 x i8>)
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20190407/c5325c8c/attachment.html>
More information about the llvm-bugs
mailing list