Skip to content

Commit 4c5dc61

Browse files
committed
[CIR][CIRGen][Builtin][Neon] Lower vcagtd_f64
1 parent 7f66a20 commit 4c5dc61

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp

+4-2
Original file line numberDiff line numberDiff line change
@@ -2686,8 +2686,10 @@ static mlir::Value emitCommonNeonSISDBuiltinExpr(
26862686
}
26872687
case NEON::BI__builtin_neon_vcages_f32:
26882688
llvm_unreachable(" neon_vcages_f32 NYI ");
2689-
case NEON::BI__builtin_neon_vcagtd_f64:
2690-
llvm_unreachable(" neon_vcagtd_f64 NYI ");
2689+
case NEON::BI__builtin_neon_vcagtd_f64: {
2690+
return emitNeonCall(builder, {argTy}, ops, "aarch64.neon.facgt", resultTy,
2691+
loc);
2692+
}
26912693
case NEON::BI__builtin_neon_vcagts_f32:
26922694
llvm_unreachable(" neon_vcagts_f32 NYI ");
26932695
case NEON::BI__builtin_neon_vcaled_f64:

clang/test/CIR/CodeGen/AArch64/neon.c

+10-6
Original file line numberDiff line numberDiff line change
@@ -15132,12 +15132,16 @@ uint64_t test_vcaged_f64(float64_t a, float64_t b) {
1513215132
// return (uint32_t)vcagts_f32(a, b);
1513315133
// }
1513415134

15135-
// NYI-LABEL: @test_vcagtd_f64(
15136-
// NYI: [[VCAGTD_F64_I:%.*]] = call i64 @llvm.aarch64.neon.facgt.i64.f64(double %a, double %b)
15137-
// NYI: ret i64 [[VCAGTD_F64_I]]
15138-
// uint64_t test_vcagtd_f64(float64_t a, float64_t b) {
15139-
// return (uint64_t)vcagtd_f64(a, b);
15140-
// }
15135+
uint64_t test_vcagtd_f64(float64_t a, float64_t b) {
15136+
return (uint64_t)vcagtd_f64(a, b);
15137+
15138+
// CIR-LABEL: vcagtd_f64
15139+
// CIR: [[TMP0:%.*]] = cir.llvm.intrinsic "aarch64.neon.facgt" {{.*}}, {{.*}} : (!cir.double, !cir.double) -> !u64i
15140+
15141+
// LLVM-LABEL: @test_vcagtd_f64(
15142+
// LLVM: [[VCAGED_F64_I:%.*]] = call i64 @llvm.aarch64.neon.facgt.i64.f64(double %0, double %1)
15143+
// LLVM: ret i64 [[VCAGED_F64_I]]
15144+
}
1514115145

1514215146
// NYI-LABEL: @test_vcales_f32(
1514315147
// NYI: [[VCALES_F32_I:%.*]] = call i32 @llvm.aarch64.neon.facge.i32.f32(float %b, float %a)

0 commit comments

Comments
 (0)