int16_t test_vaddvq_s16(int16x8_t a1) { // CHECK: test_vaddvq_s16 return vaddvq_s16(a1); // CHECK: llvm.aarch64.neon.saddv.i32.v8i16 // don't check for return here (there's a trunc?) }
// CHECK-LABEL: define i16 @test_vaddvq_s16(<8 x i16> %a) #0 { // CHECK: [[VADDV_I:%.*]] = call i32 @llvm.aarch64.neon.saddv.i32.v8i16(<8 x i16> %a) #2 // CHECK: [[TMP2:%.*]] = trunc i32 [[VADDV_I]] to i16 // CHECK: ret i16 [[TMP2]] int16_t test_vaddvq_s16(int16x8_t a) { return vaddvq_s16(a); }
int16_t test_vaddvq_s16(int16x8_t a) { // CHECK-LABEL: test_vaddvq_s16 return vaddvq_s16(a); // CHECK: addv {{h[0-9]+}}, {{v[0-9]+}}.8h }