Skip to content

Commit 4f7b5ec

Browse files
AmrDeveloperlanza
authored andcommitted
1 parent a995452 commit 4f7b5ec

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3555,8 +3555,10 @@ CIRGenFunction::emitAArch64BuiltinExpr(unsigned BuiltinID, const CallExpr *E,
35553555
switch (BuiltinID) {
35563556
default:
35573557
break;
3558-
case NEON::BI__builtin_neon_vabsh_f16:
3559-
llvm_unreachable("NEON::BI__builtin_neon_vabsh_f16 NYI");
3558+
case NEON::BI__builtin_neon_vabsh_f16: {
3559+
Ops.push_back(emitScalarExpr(E->getArg(0)));
3560+
return builder.create<cir::FAbsOp>(getLoc(E->getExprLoc()), Ops);
3561+
}
35603562
case NEON::BI__builtin_neon_vaddq_p128: {
35613563
llvm_unreachable("NEON::BI__builtin_neon_vaddq_p128 NYI");
35623564
}

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

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,16 @@
1919

2020
#include <arm_fp16.h>
2121

22-
// NYI-LABEL: test_vabsh_f16
23-
// NYI: [[ABS:%.*]] = call half @llvm.fabs.f16(half %a)
24-
// NYI: ret half [[ABS]]
25-
// float16_t test_vabsh_f16(float16_t a) {
26-
// return vabsh_f16(a);
27-
// }
22+
// CIR-LABEL: vabsh_f16
23+
// CIR: {{%.*}} = cir.fabs {{%.*}} : !cir.f16
24+
//
25+
// LLVM-LABEL: test_vabsh_f16
26+
// LLVM-SAME: (half [[a:%.]])
27+
// LLVM: [[ABS:%.*]] = call half @llvm.fabs.f16(half [[a]])
28+
// LLVM: ret half [[ABS]]
29+
float16_t test_vabsh_f16(float16_t a) {
30+
return vabsh_f16(a);
31+
}
2832

2933
// NYI-LABEL: test_vceqzh_f16
3034
// NYI: [[TMP1:%.*]] = fcmp oeq half %a, 0xH0000

0 commit comments

Comments
 (0)