diff options
author | Bob Wilson <bob.wilson@apple.com> | 2010-07-14 01:22:12 +0000 |
---|---|---|
committer | Bob Wilson <bob.wilson@apple.com> | 2010-07-14 01:22:12 +0000 |
commit | 103a0dcfe1d1c6396776fb6ee323d7b60aad28af (patch) | |
tree | b534541b3a81e5947737f0d4718e741511a8b622 /llvm/test/CodeGen/ARM/vdup.ll | |
parent | 1f471435f8f5291049842fa158ea683f160af865 (diff) | |
download | bcm5719-llvm-103a0dcfe1d1c6396776fb6ee323d7b60aad28af.tar.gz bcm5719-llvm-103a0dcfe1d1c6396776fb6ee323d7b60aad28af.zip |
Add an ARM-specific DAG combining to avoid redundant VDUPLANE nodes.
Radar 7373643.
llvm-svn: 108303
Diffstat (limited to 'llvm/test/CodeGen/ARM/vdup.ll')
-rw-r--r-- | llvm/test/CodeGen/ARM/vdup.ll | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/ARM/vdup.ll b/llvm/test/CodeGen/ARM/vdup.ll index 50e4df9f57c..a545f6c03d5 100644 --- a/llvm/test/CodeGen/ARM/vdup.ll +++ b/llvm/test/CodeGen/ARM/vdup.ll @@ -267,3 +267,15 @@ entry: %0 = shufflevector <2 x double> %arg0_int64x1_t, <2 x double> undef, <2 x i32> <i32 0, i32 0> ret <2 x double> %0 } + +; Radar 7373643 +;CHECK: redundantVdup: +;CHECK: vmov.i8 +;CHECK-NOT: vdup.8 +;CHECK: vstr.64 +define void @redundantVdup(<8 x i8>* %ptr) nounwind { + %1 = insertelement <8 x i8> undef, i8 -128, i32 0 + %2 = shufflevector <8 x i8> %1, <8 x i8> undef, <8 x i32> zeroinitializer + store <8 x i8> %2, <8 x i8>* %ptr, align 8 + ret void +} |