// Test a represntative sample of 8 and 16, signed and unsigned, 64 and 128 bit reduction int8_t test_vmaxv_s8(int8x8_t a1) { // CHECK: test_vmaxv_s8 return vmaxv_s8(a1); // CHECK @llvm.aarch64.neon.smaxv.i32.v8i8 }
// CHECK-LABEL: define i8 @test_vmaxv_s8(<8 x i8> %a) #0 { // CHECK: [[VMAXV_I:%.*]] = call i32 @llvm.aarch64.neon.smaxv.i32.v8i8(<8 x i8> %a) #2 // CHECK: [[TMP0:%.*]] = trunc i32 [[VMAXV_I]] to i8 // CHECK: ret i8 [[TMP0]] int8_t test_vmaxv_s8(int8x8_t a) { return vmaxv_s8(a); }
int8_t test_vmaxv_s8(int8x8_t a) { // CHECK-LABEL: test_vmaxv_s8 return vmaxv_s8(a); // CHECK: smaxv {{b[0-9]+}}, {{v[0-9]+}}.8b }