diff options
| author | Jim Grosbach <grosbach@apple.com> | 2012-10-12 22:59:21 +0000 |
|---|---|---|
| committer | Jim Grosbach <grosbach@apple.com> | 2012-10-12 22:59:21 +0000 |
| commit | 30af442a846b6ad09005957c903e6495b42d5a69 (patch) | |
| tree | 3a3037a20464ee5a61ca4ae66b93a29087d5d3dd /llvm/test | |
| parent | 7247b23efc1336c919aa09825a1115163168169e (diff) | |
| download | bcm5719-llvm-30af442a846b6ad09005957c903e6495b42d5a69.tar.gz bcm5719-llvm-30af442a846b6ad09005957c903e6495b42d5a69.zip | |
ARM: Mark VSELECT as 'expand'.
The backend already pattern matches to form VBSL when it can. We may want to
teach it to use the vbsl intrinsics at some point to prevent machine licm from
mucking with this, but using the Expand is completely correct.
http://llvm.org/bugs/show_bug.cgi?id=13831
http://llvm.org/bugs/show_bug.cgi?id=13961
Patch by Peter Couperus <peter.couperus@st.com>.
llvm-svn: 165845
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/CodeGen/ARM/vselect_imax.ll | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/ARM/vselect_imax.ll b/llvm/test/CodeGen/ARM/vselect_imax.ll new file mode 100644 index 00000000000..f5994046de4 --- /dev/null +++ b/llvm/test/CodeGen/ARM/vselect_imax.ll @@ -0,0 +1,12 @@ +; RUN: llc < %s -march=arm -mattr=+neon | FileCheck %s +; Make sure that ARM backend with NEON handles vselect. + +define void @vmax_v4i32(<4 x i32>* %m, <4 x i32> %a, <4 x i32> %b) { +; CHECK: vcgt.s32 [[QR:q[0-9]+]], [[Q1:q[0-9]+]], [[Q2:q[0-9]+]] +; CHECK: vbsl [[QR]], [[Q1]], [[Q2]] + %cmpres = icmp sgt <4 x i32> %a, %b + %maxres = select <4 x i1> %cmpres, <4 x i32> %a, <4 x i32> %b + store <4 x i32> %maxres, <4 x i32>* %m + ret void +} + |

