[LLVMbugs] [Bug 6822] New: clang assertion when compiling reinterpret_cast<float3>(float4_var)
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Mon Apr 12 10:41:27 PDT 2010
http://llvm.org/bugs/show_bug.cgi?id=6822
Summary: clang assertion when compiling
reinterpret_cast<float3>(float4_var)
Product: new-bugs
Version: trunk
Platform: PC
OS/Version: Windows XP
Status: NEW
Severity: normal
Priority: P
Component: new bugs
AssignedTo: unassignedbugs at nondot.org
ReportedBy: bixia.zheng at amd.com
CC: llvmbugs at cs.uiuc.edu
float3 and float4 are defined by the test case below.
Clang seems to believe that BitWidth(float3) = 4 * BitWidth(float) while LLVM
Core VectorType::getBitWidth(float3) returns 3 * BitWidth(float). This
discrepancy causes the assertion error. Where are you doing to fix this, Clang
or LLVM Core?
Thanks for your attention to this bug!
command line:
================
clang -emit-llvm -ObjC++ -S vector03.c
error message:
================
Assertion failed: castIsValid(getOpcode(), S, Ty) && "Illegal BitCast", file
... llvm\lib\VMCore\Instructions.cpp, line 2732
test case:
================
typedef float float4 __attribute__((ext_vector_type(4)));
typedef float float3 __attribute__((ext_vector_type(3)));
//typedef float float2 __attribute__((ext_vector_type(2)));
typedef struct _mystruct {
float3 field1;
float field2;
float field3;
float field4;
float field5;
} mystruct;
float3 foo() {
float3 vec3;
float4 vec4;
vec4 = sizeof(mystruct);
vec3 = reinterpret_cast<float3>(vec4);
return vec3;
}
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list