1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=arm64 -aarch64-neon-syntax=apple < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine i64 @test_vaddlv_s32(<2 x i32> %a1) nounwind readnone { 4*9880d681SAndroid Build Coastguard Worker; CHECK: test_vaddlv_s32 5*9880d681SAndroid Build Coastguard Worker; CHECK: saddlp.1d v[[REGNUM:[0-9]+]], v[[INREG:[0-9]+]] 6*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fmov x[[OUTREG:[0-9]+]], d[[REGNUM]] 7*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret 8*9880d681SAndroid Build Coastguard Workerentry: 9*9880d681SAndroid Build Coastguard Worker %vaddlv.i = tail call i64 @llvm.aarch64.neon.saddlv.i64.v2i32(<2 x i32> %a1) nounwind 10*9880d681SAndroid Build Coastguard Worker ret i64 %vaddlv.i 11*9880d681SAndroid Build Coastguard Worker} 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Workerdefine i64 @test_vaddlv_u32(<2 x i32> %a1) nounwind readnone { 14*9880d681SAndroid Build Coastguard Worker; CHECK: test_vaddlv_u32 15*9880d681SAndroid Build Coastguard Worker; CHECK: uaddlp.1d v[[REGNUM:[0-9]+]], v[[INREG:[0-9]+]] 16*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fmov x[[OUTREG:[0-9]+]], d[[REGNUM]] 17*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret 18*9880d681SAndroid Build Coastguard Workerentry: 19*9880d681SAndroid Build Coastguard Worker %vaddlv.i = tail call i64 @llvm.aarch64.neon.uaddlv.i64.v2i32(<2 x i32> %a1) nounwind 20*9880d681SAndroid Build Coastguard Worker ret i64 %vaddlv.i 21*9880d681SAndroid Build Coastguard Worker} 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Workerdeclare i64 @llvm.aarch64.neon.uaddlv.i64.v2i32(<2 x i32>) nounwind readnone 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Workerdeclare i64 @llvm.aarch64.neon.saddlv.i64.v2i32(<2 x i32>) nounwind readnone 26*9880d681SAndroid Build Coastguard Worker 27