llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
28.78k stars 11.9k forks source link

llvm-gcc ICEs on __builtin_ia32_punpckldq #3235

Closed llvmbot closed 16 years ago

llvmbot commented 16 years ago
Bugzilla Link 2863
Resolution DUPLICATE
Resolved on Oct 06, 2008 16:14
Version trunk
OS MacOS X
Reporter LLVM Bugzilla Contributor

Extended Description

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.

llvmbot commented 16 years ago

This bug has been marked as a duplicate of bug llvm/llvm-project#3222

lattner commented 16 years ago

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

lattner 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 }