Displaying 3 results from an estimated 3 matches for "splatcalls27_d".
2015 Jul 24
1
[LLVMdev] SIMD for sdiv <2 x i64>
...whether either of the
vector elements produced by the divide are ugt the spatInstMap. I can't
say for sure that we can do better here - I haven't studied our vector
canonicalization rules enough - but this seems like something which
could possibly be improved.
This is interesting:
%splatCallS27_D.splatinsert = insertelement <2 x i8*> undef, i8*
%call5.i.i, i32 0
%splatCallS27_D.splat = shufflevector <2 x i8*>
%splatCallS27_D.splatinsert, <2 x i8*> undef, <2 x i32> zeroinitializer
Can't that shuifflevector be replaced with:
%splatCallS27_D.splat = inserte...
2015 Jul 24
0
[LLVMdev] SIMD for sdiv <2 x i64>
...D.splat to <2 x i64>
%umul_with_overflow.i.iS26_D = shl <2 x i64> %S25_D, <i64 3, i64 3>
%extumul_with_overflow.i.iS26_D = extractelement <2 x i64>
%umul_with_overflow.i.iS26_D, i32 1
%call5.i.i = tail call noalias i8* @_Znam(i64
%extumul_with_overflow.i.iS26_D) #22
%splatCallS27_D.splatinsert = insertelement <2 x i8*> undef, i8*
%call5.i.i, i32 0
%splatCallS27_D.splat = shufflevector <2 x i8*>
%splatCallS27_D.splatinsert, <2 x i8*> undef, <2 x i32> zeroinitializer
%bitcastS28_D = bitcast <2 x i8*> %splatCallS27_D.splat to <2 x double*>...
2015 Jul 24
2
[LLVMdev] SIMD for sdiv <2 x i64>
On 07/24/2015 03:42 AM, Benjamin Kramer wrote:
>> On 24.07.2015, at 08:06, zhi chen <zchenhn at gmail.com> wrote:
>>
>> It seems that that it's hard to vectorize int64 in LLVM. For example, LLVM 3.4 generates very complicated code for the following IR. I am running on a Haswell processor. Is it because there is no alternative AVX/2 instructions for int64? The same thing