Skip to content

Commit f711f11

Browse files
authored
[SYCLomatic] Use rewriter to impl sinpif (#2683)
Signed-off-by: Jiang, Zhiwei <zhiwei.jiang@intel.com>
1 parent ff384c9 commit f711f11

3 files changed

Lines changed: 26 additions & 1 deletion

File tree

clang/lib/DPCT/RulesLang/APINamesMath.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ ENTRY_RENAMED_SINGLE("rsqrtf", MapNames::getClNamespace(false, true) + "rsqrt")
101101
ENTRY_RENAMED_SINGLE("signbit", MapNames::getClNamespace(false, true) + "signbit")
102102
ENTRY_RENAMED_SINGLE("sinf", MapNames::getClNamespace(false, true) + "sin")
103103
ENTRY_RENAMED_SINGLE("sinhf", MapNames::getClNamespace(false, true) + "sinh")
104-
ENTRY_RENAMED_SINGLE("sinpif", MapNames::getClNamespace(false, true) + "sinpi")
104+
ENTRY_REWRITE("sinpif")
105105
ENTRY_RENAMED_SINGLE("sqrtf", MapNames::getClNamespace(false, true) + "sqrt")
106106
ENTRY_RENAMED_SINGLE("tanf", MapNames::getClNamespace(false, true) + "tan")
107107
ENTRY_RENAMED_SINGLE("tanhf", MapNames::getClNamespace(false, true) + "tanh")

clang/lib/DPCT/RulesLang/Math/RewriterSinglePrecisionMathematicalFunctions.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,21 @@ RewriterMap dpct::createSinglePrecisionMathematicalFunctionsRewriterMap() {
280280
makeArgWithAddressSpaceCast(2)))),
281281
Diagnostics::MATH_EMULATION, std::string("sincospif"),
282282
MapNames::getClNamespace() + std::string("sincos"))
283+
// sinpif
284+
MATH_API_REWRITERS_V2(
285+
"sinpif",
286+
MATH_API_REWRITER_PAIR(
287+
math::Tag::host_normal,
288+
CALL_FACTORY_ENTRY(
289+
"sinpif",
290+
CALL(MapNames::getClNamespace() + "sinpi",
291+
CAST_IF_NOT_SAME(makeLiteral("float"), ARG(0))))),
292+
MATH_API_REWRITER_PAIR(
293+
math::Tag::device_normal,
294+
CALL_FACTORY_ENTRY(
295+
"sinpif",
296+
CALL(MapNames::getClNamespace() + "sinpi",
297+
CAST_IF_NOT_SAME(makeLiteral("float"), ARG(0))))))
283298
// y0f
284299
MATH_API_REWRITER_DEVICE(
285300
"y0f",

clang/test/dpct/math/cuda-math-intrinsics.cu

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3529,3 +3529,13 @@ void foo5() {
35293529
// CHECK: f0 = ceilf(i);
35303530
f0 = ceilf(i);
35313531
}
3532+
3533+
void foo6(float aa) {
3534+
// CHECK: sycl::sinpi(aa);
3535+
::sinpif(aa);
3536+
}
3537+
3538+
__global__ void foo7(float aa) {
3539+
// CHECK: sycl::sinpi(aa);
3540+
::sinpif(aa);
3541+
}

0 commit comments

Comments
 (0)