[llvm] r241611 - Add a pattern for a nvcast from v2f64 -> v4f32

Quentin Colombet qcolombet at apple.com
Tue Jul 7 12:41:10 PDT 2015


Thanks!


> On Jul 7, 2015, at 12:27 PM, Arnold Schwaighofer <aschwaighofer at apple.com> wrote:
> 
> :)
> 
> r241619
> 
> 
>> On Jul 7, 2015, at 11:47 AM, Quentin Colombet <qcolombet at apple.com> wrote:
>> 
>> Still, I like when we check we generate something correct :).
>> 
>> Q.
>>> On Jul 7, 2015, at 11:46 AM, Arnold Schwaighofer <aschwaighofer at apple.com> wrote:
>>> 
>>> It was crashing before.
>>> 
>>>> On Jul 7, 2015, at 11:46 AM, Quentin Colombet <qcolombet at apple.com> wrote:
>>>> 
>>>> Hi Arnold,
>>>> 
>>>> The test case is missing some CHECK lines.
>>>> 
>>>> Cheers,
>>>> Q.
>>>>> On Jul 7, 2015, at 11:31 AM, Arnold Schwaighofer <aschwaighofer at apple.com> wrote:
>>>>> 
>>>>> Author: arnolds
>>>>> Date: Tue Jul  7 13:31:55 2015
>>>>> New Revision: 241611
>>>>> 
>>>>> URL: http://llvm.org/viewvc/llvm-project?rev=241611&view=rev
>>>>> Log:
>>>>> Add a pattern for a nvcast from v2f64 -> v4f32
>>>>> 
>>>>> Since the NvCast is generated by the selection process the concerns about
>>>>> endianess and bit reversal don't apply.
>>>>> 
>>>>> rdar://21703486
>>>>> 
>>>>> Added:
>>>>> llvm/trunk/test/CodeGen/AArch64/arm64-nvcast.ll
>>>>> Modified:
>>>>> llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td
>>>>> 
>>>>> Modified: llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td
>>>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td?rev=241611&r1=241610&r2=241611&view=diff
>>>>> ==============================================================================
>>>>> --- llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td (original)
>>>>> +++ llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td Tue Jul  7 13:31:55 2015
>>>>> @@ -5315,6 +5315,7 @@ def : Pat<(v8i16 (AArch64NvCast (v2f64 F
>>>>> def : Pat<(v4i32 (AArch64NvCast (v2f64 FPR128:$src))), (v4i32 FPR128:$src)>;
>>>>> def : Pat<(v2i64 (AArch64NvCast (v2f64 FPR128:$src))), (v2i64 FPR128:$src)>;
>>>>> def : Pat<(v2f64 (AArch64NvCast (v2f64 FPR128:$src))), (v2f64 FPR128:$src)>;
>>>>> +def : Pat<(v4f32 (AArch64NvCast (v2f64 FPR128:$src))), (v4f32 FPR128:$src)>;
>>>>> 
>>>>> let Predicates = [IsLE] in {
>>>>> def : Pat<(v8i8  (bitconvert GPR64:$Xn)), (COPY_TO_REGCLASS GPR64:$Xn, FPR64)>;
>>>>> 
>>>>> Added: llvm/trunk/test/CodeGen/AArch64/arm64-nvcast.ll
>>>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/arm64-nvcast.ll?rev=241611&view=auto
>>>>> ==============================================================================
>>>>> --- llvm/trunk/test/CodeGen/AArch64/arm64-nvcast.ll (added)
>>>>> +++ llvm/trunk/test/CodeGen/AArch64/arm64-nvcast.ll Tue Jul  7 13:31:55 2015
>>>>> @@ -0,0 +1,8 @@
>>>>> +; RUN: llc < %s -mtriple=arm64-apple-ios
>>>>> +
>>>>> +define void @test(float * %p1, i32 %v1) {
>>>>> +entry:
>>>>> +  %v2 = extractelement <3 x float> <float 0.000000e+00, float 2.000000e+00, float 0.000000e+00>, i32 %v1
>>>>> +  store float %v2, float* %p1, align 4
>>>>> +  ret void
>>>>> +}
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> llvm-commits mailing list
>>>>> llvm-commits at cs.uiuc.edu
>>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>>> 
>>> 
>> 
> 





More information about the llvm-commits mailing list