From f0c3a8fe20e043523214014f7d27195f8efd1231 Mon Sep 17 00:00:00 2001 From: Ronan Keryell Date: Wed, 2 Oct 2024 11:44:47 -0700 Subject: [PATCH] Replace a note by normative waiver on optional feature Take into account Greg Lueck comment https://github.com/KhronosGroup/SYCL-Docs/pull/388#discussion_r1784433888 Also reformat some text to pass the CI. --- adoc/chapters/device_compiler.adoc | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/adoc/chapters/device_compiler.adoc b/adoc/chapters/device_compiler.adoc index 67e8eaf3..ffd14f45 100644 --- a/adoc/chapters/device_compiler.adoc +++ b/adoc/chapters/device_compiler.adoc @@ -205,9 +205,9 @@ Amongst other things, this restriction makes it illegal for a implementation defines the [code]#SYCL_EXTERNAL# macro as described in <>. -In the case of a manifestly constant-evaluated expression or -conversion, any code accepted by the C++ standard in this case is also -accepted in a SYCL <>. +In the case of a manifestly constant-evaluated expression or conversion, any +code accepted by the C++ standard in this case is also accepted in a SYCL +<>. [NOTE] ==== @@ -386,6 +386,14 @@ in <> must be defined by all conformant implementations. A number of kernel features defined by this SYCL specification are optional; they may be supported on some devices but not on other devices. + +As stated in <>, the restrictions for +optional kernel features do not apply to manifestly constant-evaluated +expressions or conversions in device code. +Device code may use optional features in manifestly constant-evaluated +expressions or conversions even if the device does not support the optional +feature. + As described in <>, an application can test whether a device supports these features by testing whether the device has an associated aspect. The following aspects are those that correspond to optional kernel features: @@ -446,16 +454,6 @@ the entire device image when [code]#KernelA# is submitted to device [code]#dev1#. ==== -[NOTE] -==== -As stated in <>, the restrictions -for optional kernel features do not apply to manifestly -constant-evaluated expressions or conversions in device code. Device -code may use optional features in manifestly constant-evaluated -expressions or conversions even if the device does not support the -optional feature. -==== - [[sec:device.attributes]] == Attributes for device code