[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