uint8_t test_vaddvq_u8(int8x16_t a1) { // CHECK: test_vaddvq_u8 return vaddvq_u8(a1); // CHECK: llvm.aarch64.neon.uaddv.i32.v16i8 // don't check for return here (there's a trunc?) }
// CHECK-LABEL: define i8 @test_vaddvq_u8(<16 x i8> %a) #0 { // CHECK: [[VADDV_I:%.*]] = call i32 @llvm.aarch64.neon.uaddv.i32.v16i8(<16 x i8> %a) #2 // CHECK: [[TMP0:%.*]] = trunc i32 [[VADDV_I]] to i8 // CHECK: ret i8 [[TMP0]] uint8_t test_vaddvq_u8(uint8x16_t a) { return vaddvq_u8(a); }
uint8_t test_vaddvq_u8(uint8x16_t a) { // CHECK-LABEL: test_vaddvq_u8 return vaddvq_u8(a); // CHECK: addv {{b[0-9]+}}, {{v[0-9]+}}.16b }