1 ; RUN: llc < %s -verify-machineinstrs -mtriple=aarch64-none-linux-gnu -mattr=+neon | FileCheck %s
3 define <1 x i64> @add1xi64(<1 x i64> %A, <1 x i64> %B) {
4 ;CHECK: add {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}}
5 %tmp3 = add <1 x i64> %A, %B;
9 define <1 x i64> @sub1xi64(<1 x i64> %A, <1 x i64> %B) {
10 ;CHECK: sub {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}}
11 %tmp3 = sub <1 x i64> %A, %B;
15 declare <1 x i64> @llvm.aarch64.neon.vaddds(<1 x i64>, <1 x i64>)
16 declare <1 x i64> @llvm.aarch64.neon.vadddu(<1 x i64>, <1 x i64>)
18 define <1 x i64> @test_add_v1i64(<1 x i64> %lhs, <1 x i64> %rhs) {
19 ; CHECK: test_add_v1i64:
20 %tmp1 = call <1 x i64> @llvm.aarch64.neon.vaddds(<1 x i64> %lhs, <1 x i64> %rhs)
21 ; CHECK: add {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}}
25 define <1 x i64> @test_uadd_v1i64(<1 x i64> %lhs, <1 x i64> %rhs) {
26 ; CHECK: test_uadd_v1i64:
27 %tmp1 = call <1 x i64> @llvm.aarch64.neon.vadddu(<1 x i64> %lhs, <1 x i64> %rhs)
28 ;CHECK: add {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}}
32 declare <1 x i64> @llvm.aarch64.neon.vsubds(<1 x i64>, <1 x i64>)
33 declare <1 x i64> @llvm.aarch64.neon.vsubdu(<1 x i64>, <1 x i64>)
35 define <1 x i64> @test_sub_v1i64(<1 x i64> %lhs, <1 x i64> %rhs) {
36 ; CHECK: test_sub_v1i64:
37 %tmp1 = call <1 x i64> @llvm.aarch64.neon.vsubds(<1 x i64> %lhs, <1 x i64> %rhs)
38 ; CHECK: sub {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}}
42 define <1 x i64> @test_usub_v1i64(<1 x i64> %lhs, <1 x i64> %rhs) {
43 ; CHECK: test_usub_v1i64:
44 %tmp1 = call <1 x i64> @llvm.aarch64.neon.vsubdu(<1 x i64> %lhs, <1 x i64> %rhs)
45 ;CHECK: sub {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}}