Displaying 5 results from an estimated 5 matches for "matval".
2012 Mar 10
2
[LLVMdev] scalarrepl fails to promote array of vector
...t>] in the following program.
$cat test.ll
; ModuleID = 'test.ll'
define void @main(<4 x float>* %inArg, <4 x float>* %outArg, [4 x <4 x
float>]* %constants) nounwind {
entry:
%inArg1 = load <4 x float>* %inArg
%mat_alloc = alloca [4 x <4 x float>]
%matVal = load [4 x <4 x float>]* %constants
store [4 x <4 x float>] %matVal, [4 x <4 x float>]* %mat_alloc
%0 = getelementptr inbounds [4 x <4 x float>]* %mat_alloc, i32 0, i32 0
%1 = load <4 x float>* %0
%2 = fmul <4 x float> %1, %inArg1
%3 = getelementptr in...
2012 Mar 12
3
[LLVMdev] scalarrepl fails to promote array of vector
...9;test.ll'
> >
> > define void @main(<4 x float>* %inArg, <4 x float>* %outArg, [4 x <4 x
> float>]* %constants) nounwind {
> > entry:
> > %inArg1 = load <4 x float>* %inArg
> > %mat_alloc = alloca [4 x <4 x float>]
> > %matVal = load [4 x <4 x float>]* %constants
> > store [4 x <4 x float>] %matVal, [4 x <4 x float>]* %mat_alloc
> > %0 = getelementptr inbounds [4 x <4 x float>]* %mat_alloc, i32 0, i32 0
> > %1 = load <4 x float>* %0
> > %2 = fmul <4 x float...
2012 Mar 10
0
[LLVMdev] scalarrepl fails to promote array of vector
...est.ll
>
> ; ModuleID = 'test.ll'
>
> define void @main(<4 x float>* %inArg, <4 x float>* %outArg, [4 x <4 x float>]* %constants) nounwind {
> entry:
> %inArg1 = load <4 x float>* %inArg
> %mat_alloc = alloca [4 x <4 x float>]
> %matVal = load [4 x <4 x float>]* %constants
> store [4 x <4 x float>] %matVal, [4 x <4 x float>]* %mat_alloc
> %0 = getelementptr inbounds [4 x <4 x float>]* %mat_alloc, i32 0, i32 0
> %1 = load <4 x float>* %0
> %2 = fmul <4 x float> %1, %inArg1
>...
2012 Mar 12
0
[LLVMdev] scalarrepl fails to promote array of vector
...> define void @main(<4 x float>* %inArg, <4 x float>* %outArg, [4 x <4 x
> float>]* %constants) nounwind {
> > entry:
> > %inArg1 = load <4 x float>* %inArg
> > %mat_alloc = alloca [4 x <4 x float>]
> > %matVal = load [4 x <4 x float>]* %constants
> > store [4 x <4 x float>] %matVal, [4 x <4 x float>]* %mat_alloc
> > %0 = getelementptr inbounds [4 x <4 x float>]* %mat_alloc, i32 0, i32 0
> > %1 = load <4 x float>* %0
> > %2...
2011 Nov 02
5
[LLVMdev] About JIT by LLVM 2.9 or later
...urn mat->y; }
Caller:
// ...
float4x4 mat; // Initialized
float4 ret = fetch(mat); // fetch is JITed by LLVM
float4 ret_vs = fetch_vs(mat)
// ...
Callee(LLVM):
%vec4 = type { float, float, float, float }
%mat44 = type { %vec4, %vec4, %vec4, %vec4 }
define %vec4 @fetch( %mat44* %m ) {
%matval = load %mat44* %m
%v2 = extractvalue %mat44 %matval, 2
ret %vec4 %v2
}
But if it is implemented by LLVM and called the JIT-ed function in
MSVC, the program will be *crashed*.
I traced into the implementations, ASMs are:
* Caller:*
float4x4 f;
float4 b...