[llvm-commits] [llvm] r158684 - in /llvm/trunk: lib/Target/ARM/ARMISelLowering.cpp test/CodeGen/ARM/struct_byval.ll

Bill Wendling wendling at apple.com
Tue Jun 19 01:29:08 PDT 2012


On Jun 18, 2012, at 3:23 PM, Manman Ren wrote:

> Author: mren
> Date: Mon Jun 18 17:23:48 2012
> New Revision: 158684
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=158684&view=rev
> Log:
> ARM: use NOEN loads and stores if possible when handling struct byval.
> 
> This change is to be enabled in clang.
> 
> rdar://9877866
> 
> 
> Modified: llvm/trunk/test/CodeGen/ARM/struct_byval.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/struct_byval.ll?rev=158684&r1=158683&r2=158684&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/ARM/struct_byval.ll (original)
> +++ llvm/trunk/test/CodeGen/ARM/struct_byval.ll Mon Jun 18 17:23:48 2012
> @@ -28,5 +28,19 @@
>   ret i32 0
> }
> 
> +; Generate a loop using NEON instructions
> +define i32 @h() nounwind ssp {
> +entry:
> +; CHECK: h:
> +; CHECK: vld1
> +; CHECK: sub
> +; CHECK: vst1
> +; CHECK: bne

Hi Manman,

If these instructions are meant to be in this order without intervening instructions, you can use the "CHECK-NEXT" version of the FileCheck "CHECK" marker to make sure that they are next to each other. :)

-bw


> +  %st = alloca %struct.LargeStruct, align 16
> +  %call = call i32 @e3(%struct.LargeStruct* byval align 16 %st)
> +  ret i32 0
> +}
> +
> declare i32 @e1(%struct.SmallStruct* nocapture byval %in) nounwind
> declare i32 @e2(%struct.LargeStruct* nocapture byval %in) nounwind
> +declare i32 @e3(%struct.LargeStruct* nocapture byval align 16 %in) nounwind
> 
> 
> _______________________________________________
> 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