Skip to content

[X86ISelLowering] MVT llvm::EVT::getSimpleVT() const: Assertion `isSimple() && "Expected a SimpleValueType!"' failed. #84660

Closed
@dianqk

Description

@dianqk

I tried this code:

target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

define <2 x i128> @foo(i128 %arg) #0 {
bb:
  %i = xor i128 %arg, 1
  %i1 = insertelement <2 x i128> zeroinitializer, i128 %i, i64 0
  %i2 = shufflevector <2 x i128> %i1, <2 x i128> zeroinitializer, <2 x i32> zeroinitializer
  %i3 = and <2 x i128> <i128 1, i128 1>, %i2
  ret <2 x i128> %i3
}

attributes #0 = { "target-cpu"="sandybridge" }

I got the following error log:

llc: /home/dianqk/llvm/llvm-project/llvm/include/llvm/CodeGen/ValueTypes.h:289: MVT llvm::EVT::getSimpleVT() const: Assertion `isSimple() && "Expected a SimpleValueType!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /home/dianqk/llvm/llvm-project/build/bin/llc /home/dianqk/llvm/rust-122252/foo.ll -filetype=null
1.      Running pass 'Function Pass Manager' on module '/home/dianqk/llvm/rust-122252/foo.ll'.
2.      Running pass 'X86 DAG->DAG Instruction Selection' on function '@foo'
...
 #9 0x00007f9594e587ce llvm::LinearPolySize<llvm::TypeSize>::getFixedValue() const /home/dianqk/llvm/llvm-project/llvm/include/llvm/Support/TypeSize.h:314:5
#10 0x00007f9594e587ce llvm::TypeSize::getFixedSize() const /home/dianqk/llvm/llvm-project/llvm/include/llvm/Support/TypeSize.h:456:52
#11 0x00007f9594e587ce llvm::MVT::getScalarSizeInBits() const /home/dianqk/llvm/llvm-project/llvm/include/llvm/Support/MachineValueType.h:1139:46
#12 0x00007f9594e587ce combineAndnp(llvm::SDNode*, llvm::SelectionDAG&, llvm::TargetLowering::DAGCombinerInfo&, llvm::X86Subtarget const&) /home/dianqk/llvm/llvm-project/llvm/lib/Target/X86/X86ISelLowering.cpp:52218:31
#13 0x00007f9594e31658 llvm::X86TargetLowering::PerformDAGCombine(llvm::SDNode*, llvm::TargetLowering::DAGCombinerInfo&) const /home/dianqk/llvm/llvm-project/llvm/lib/Target/X86/X86ISelLowering.cpp:0:36
...

Bisected to 15dd5ed.

Godbolt: https://llvm.godbolt.org/z/o9fEqj8x5
From: rust-lang/rust#122252

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions