summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/AArch64/neon-add-sub.ll
diff options
context:
space:
mode:
authorHao Liu <Hao.Liu@arm.com>2014-02-13 05:42:33 +0000
committerHao Liu <Hao.Liu@arm.com>2014-02-13 05:42:33 +0000
commit7b6dfcf06ad1eb151f8f28df724ce5f2b06bb967 (patch)
treeee3f2c774907e9797200f68f9ccfa3aaab7d7338 /llvm/test/CodeGen/AArch64/neon-add-sub.ll
parentaadd52e5cc8776ed65c0850876a68a1f10a92f10 (diff)
downloadbcm5719-llvm-7b6dfcf06ad1eb151f8f28df724ce5f2b06bb967.tar.gz
bcm5719-llvm-7b6dfcf06ad1eb151f8f28df724ce5f2b06bb967.zip
[AArch64]Fix the problems that can't select mul/add/sub of v1i8/v1i16/v1i32 types.
As this problems are similar to shl/sra/srl, also add patterns for shift nodes. llvm-svn: 201298
Diffstat (limited to 'llvm/test/CodeGen/AArch64/neon-add-sub.ll')
-rw-r--r--llvm/test/CodeGen/AArch64/neon-add-sub.ll44
1 files changed, 43 insertions, 1 deletions
diff --git a/llvm/test/CodeGen/AArch64/neon-add-sub.ll b/llvm/test/CodeGen/AArch64/neon-add-sub.ll
index 5dc95e6f6e2..9015237fddc 100644
--- a/llvm/test/CodeGen/AArch64/neon-add-sub.ll
+++ b/llvm/test/CodeGen/AArch64/neon-add-sub.ll
@@ -234,4 +234,46 @@ declare <1 x double> @llvm.aarch64.neon.vmaxnm.v1f64(<1 x double>, <1 x double>)
declare <1 x double> @llvm.arm.neon.vmins.v1f64(<1 x double>, <1 x double>)
declare <1 x double> @llvm.arm.neon.vmaxs.v1f64(<1 x double>, <1 x double>)
declare <1 x double> @llvm.arm.neon.vabds.v1f64(<1 x double>, <1 x double>)
-declare <1 x double> @llvm.fma.v1f64(<1 x double>, <1 x double>, <1 x double>) \ No newline at end of file
+declare <1 x double> @llvm.fma.v1f64(<1 x double>, <1 x double>, <1 x double>)
+
+define <1 x i8> @test_add_v1i8(<1 x i8> %a, <1 x i8> %b) {
+;CHECK-LABEL: test_add_v1i8:
+;CHECK: add {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
+ %c = add <1 x i8> %a, %b
+ ret <1 x i8> %c
+}
+
+define <1 x i16> @test_add_v1i16(<1 x i16> %a, <1 x i16> %b) {
+;CHECK-LABEL: test_add_v1i16:
+;CHECK: add {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h
+ %c = add <1 x i16> %a, %b
+ ret <1 x i16> %c
+}
+
+define <1 x i32> @test_add_v1i32(<1 x i32> %a, <1 x i32> %b) {
+;CHECK-LABEL: test_add_v1i32:
+;CHECK: add {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
+ %c = add <1 x i32> %a, %b
+ ret <1 x i32> %c
+}
+
+define <1 x i8> @test_sub_v1i8(<1 x i8> %a, <1 x i8> %b) {
+;CHECK-LABEL: test_sub_v1i8:
+;CHECK: sub {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
+ %c = sub <1 x i8> %a, %b
+ ret <1 x i8> %c
+}
+
+define <1 x i16> @test_sub_v1i16(<1 x i16> %a, <1 x i16> %b) {
+;CHECK-LABEL: test_sub_v1i16:
+;CHECK: sub {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h
+ %c = sub <1 x i16> %a, %b
+ ret <1 x i16> %c
+}
+
+define <1 x i32> @test_sub_v1i32(<1 x i32> %a, <1 x i32> %b) {
+;CHECK-LABEL: test_sub_v1i32:
+;CHECK: sub {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
+ %c = sub <1 x i32> %a, %b
+ ret <1 x i32> %c
+} \ No newline at end of file
OpenPOWER on IntegriCloud