Quuxplusone / LLVMBugzillaTest

0 stars 0 forks source link

llvm-gcc ICEs on __builtin_ia32_punpckldq #3136

Closed Quuxplusone closed 16 years ago

Quuxplusone commented 16 years ago
Bugzilla Link PR2863
Status RESOLVED DUPLICATE of bug 2850
Importance P normal
Reported by Daniel Dunbar (daniel@zuster.org)
Reported on 2008-10-05 02:19:15 -0700
Last modified on 2008-10-06 16:14:11 -0700
Version trunk
Hardware Macintosh MacOS X
CC baldrick@free.fr, evan.cheng@apple.com, llvm-bugs@lists.llvm.org
Fixed by commit(s)
Attachments
Blocks
Blocked by
See also
llvm-gcc ICEs on
--
typedef signed int V2i __attribute__((vector_size(8)));
void f0() {
  V2i    tmp_V2i;
  tmp_V2i = __builtin_ia32_punpckldq(tmp_V2i, tmp_V2i);
}
--
ddunbar@ddunbar2:CodeGen$ gcc -v && gcc -c -mmmx m.c
Using built-in specs.
Target: i686-apple-darwin10
Configured with: /var/tmp/gcc/gcc-5616.3~3/src/configure --disable-checking --
enable-werror --prefix=/usr --mandir=/usr/share/man --enable-
languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/\
-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin10 --with-gxx-include-
dir=/usr/include/c++/4.2.1 --host=i686-apple-darwin10 --target=i686-apple-
darwin10
Thread model: posix
gcc version 4.2.1 (Apple Inc. build 5616) (dot 3)

ddunbar@ddunbar2:CodeGen$ llvm-gcc -v && llvm-gcc -c -mmmx m.c
Using built-in specs.
Target: i686-apple-darwin10
Configured with: ../llvm-gcc-4.2/configure --prefix=/Users/ddunbar/llvm-
gcc/obj/../install --program-prefix=llvm- --enable-llvm=/Users/ddunbar/llvm/ --
enable-languages=c,c++,objc,obj-c++ --with-arch=nocona --wit\
h-tune=generic --with-gxx-include-dir=/usr/include/c++/4.2.1 --build=i686-apple-
darwin10 --host=i686-apple-darwin10 --target=i686-apple-darwin10
Thread model: posix
gcc version 4.2.1 (Based on Apple Inc. build 5623) (LLVM build)
Assertion failed: (VT.getSizeInBits() == Operand.getValueType().getSizeInBits()
&& "Cannot BIT_CONVERT between types of different sizes!"), function getNode,
file SelectionDAG.cpp, line 2218.
m.c:5: internal compiler error: Abort trap
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://developer.apple.com/bugreporter> for instructions.
Quuxplusone commented 16 years ago
This is an x86 codegen crash (MMX), here's a testcase:

target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-
f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
target triple = "i386-apple-darwin5"
@tmp_V2i = common global <2 x i32> zeroinitializer      ; <<2 x i32>*> [#uses=2]

define void @f0() nounwind {
entry:
    %0 = load <2 x i32>* @tmp_V2i, align 8      ; <<2 x i32>> [#uses=1]
    %1 = shufflevector <2 x i32> %0, <2 x i32> undef, <2 x i32> zeroinitializer     ;
<<2 x i32>> [#uses=1]
    store <2 x i32> %1, <2 x i32>* @tmp_V2i, align 8
    ret void
}
Quuxplusone commented 16 years ago

Evan, this is a regression from your CanonicalizeMovddup work. Please investigate (for llvm 2.4), thanks!

Quuxplusone commented 16 years ago

_This bug has been marked as a duplicate of bug 2850_