Skip to content

Assertion failed: ((PartVT.isInteger() || PartVT == MVT::x86mmx) && ValueVT.isInteger() && "Unknown mismatch!"), function getCopyToParts #23603

Closed
@DimitryAndric

Description

@DimitryAndric
Bugzilla Link 23229
Resolution DUPLICATE
Resolved on Aug 17, 2015 08:26
Version trunk
OS All
CC @emaste

Extended Description

As reported in https://bugs.freebsd.org/199450, clang crashes with the following assertion failure in SpiderMonkey's FoldConstants.cpp file, when compiled for the armv6--freebsd11.0-gnueabihf target:

Assertion failed: ((PartVT.isInteger() || PartVT == MVT::x86mmx) && ValueVT.isInteger() && "Unknown mismatch!"), function getCopyToParts, file /share/dim/src/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp, line 399.

This also reproduces with clang trunk r234702.

Reduced test case is:

======================================================================
a, b, c, d;
double e;
fn1() { asm("" : "=r"(a), "=&r"(b), "=&r"(c), "=&r"(d), "=&r"(e) : "4"(e)); }

Compile with:

clang -cc1 -triple armv6 -emit-obj -target-cpu arm1176jzf-s testcase.c

Note: the target-cpu setting is essential to trigger this assert.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugzillaIssues migrated from bugzilladuplicateResolved as duplicate

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions