llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-backend-x86 Author: Sietze Riemersma (KungFuDonkey) <details> <summary>Changes</summary> Adding multiple intrinsics that were missing for HLSL. These include templated functions for ReadLane, Quad Reads, WaveActive* intrinsics, and WaveMultiPrefix* (shader model 6.5) intrinsics. Also added Other memory barriers, only GroupSharedMemoryBarrierWithGroupSync() was defined, but DeviceMemoryBarrier() and AllMemoryBarrier() also exist. LMK if this needs additional information or changes --- Patch is 118.28 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/163971.diff 1 Files Affected: - (modified) clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h (+2180-91) ``````````diff diff --git a/clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h b/clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h index d973371312701..c18511506830f 100644 --- a/clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h +++ b/clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h @@ -2374,129 +2374,1144 @@ _HLSL_AVAILABILITY(shadermodel, 6.0) _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_count_bits) __attribute__((convergent)) uint WaveActiveCountBits(bool Val); +/// \brief Returns the sum of all the specified boolean variables set to true across +/// all active lanes with indices smaller than the current lane. +/// +/// \param Val The input boolean value. +/// \return The sum of all the specified Boolean variables set to true across all active +/// lanes with indices smaller than the current lane. +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_count_bits) +__attribute__((convergent)) uint WavePrefixCountBits(bool Val); + +/// \brief Returns the sum of all the specified boolean variables set to true across +/// all active lanes defined by a mask with indices smaller than the current lane. +/// +/// \param Val The input boolean value. +/// \return The sum of all the specified Boolean variables set to true across all active +/// lanes with indices smaller than the current lane. +_HLSL_AVAILABILITY(shadermodel, 6.5) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_count_bits) +__attribute__((convergent)) uint WaveMultiPrefixCountBits(bool Val, uint4 Mask); + +/// \brief Returns a uint4 containing a bitmask of the evaluation of the Boolean +/// expression for all active lanes in the current wave. +/// +/// \param Val The boolean expression to evaluate. +/// \return A uint4 containing a bitmask of the evaluation of the Boolean expression +/// for all active lanes in the current wave. The least-significant bit corresponds to +/// the lane with index zero. The bits corresponding to inactive lanes will be zero. +/// The bits that are greater than or equal to WaveGetLaneCount will be zero. +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_count_bits) +__attribute__((convergent)) uint4 WaveActiveBallot(bool Val); + /// \brief Returns the index of the current lane within the current wave. _HLSL_AVAILABILITY(shadermodel, 6.0) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_get_lane_index) -__attribute__((convergent)) uint WaveGetLaneIndex(); +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_get_lane_index) +__attribute__((convergent)) uint WaveGetLaneIndex(); + +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_is_first_lane) +__attribute__((convergent)) bool WaveIsFirstLane(); + +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_get_lane_count) +__attribute__((convergent)) uint WaveGetLaneCount(); + +//===----------------------------------------------------------------------===// +// WaveReadLaneAt builtins +//===----------------------------------------------------------------------===// + +// \brief Returns the value of the expression for the given lane index within +// the specified wave. + +template <typename T> +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at) +__attribute__((convergent)) T WaveReadLaneAt(T, uint32_t); + +// \brief Returns the value of the expression for the active lane of the current wave with the smallest index. +template <typename T> +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_first) +__attribute__((convergent)) T WaveReadLaneFirst(T); + +// \brief Returns the value of the expression for the given lane index within +// the specified quad. +template <typename T> +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_lane_at) +__attribute__((convergent)) T QuadReadLaneAt(T, uint32_t); + +// \brief Returns the specified local value which is read from the diagonally opposite lane in this quad. +template <typename T> +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_accross_diagonal) +__attribute__((convergent)) T QuadReadAcrossDiagonal(T, uint32_t); + +// \brief Returns the specified source value read from the other lane in this quad in the X direction. +template <typename T> +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_accross_x) +__attribute__((convergent)) T QuadReadAcrossX(T, uint32_t); + +// \brief Returns the specified source value read from the other lane in this quad in the Y direction. +template <typename T> +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_quad_read_accross_y) +__attribute__((convergent)) T QuadReadAcrossY(T, uint32_t); + +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) half WaveActiveAllEqual(half); +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) half2 WaveActiveAllEqual(half2); +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) half3 WaveActiveAllEqual(half3); +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) half4 WaveActiveAllEqual(half4); + +#ifdef __HLSL_ENABLE_16_BIT +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int16_t WaveActiveAllEqual(int16_t); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int16_t2 WaveActiveAllEqual(int16_t2); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int16_t3 WaveActiveAllEqual(int16_t3); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int16_t4 WaveActiveAllEqual(int16_t4); + +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint16_t WaveActiveAllEqual(uint16_t); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint16_t2 WaveActiveAllEqual(uint16_t2); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint16_t3 WaveActiveAllEqual(uint16_t3); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint16_t4 WaveActiveAllEqual(uint16_t4); +#endif + +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int WaveActiveAllEqual(int); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int2 WaveActiveAllEqual(int2); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int3 WaveActiveAllEqual(int3); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int4 WaveActiveAllEqual(int4); + +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint WaveActiveAllEqual(uint); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint2 WaveActiveAllEqual(uint2); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint3 WaveActiveAllEqual(uint3); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint4 WaveActiveAllEqual(uint4); + +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int64_t WaveActiveAllEqual(int64_t); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int64_t2 WaveActiveAllEqual(int64_t2); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int64_t3 WaveActiveAllEqual(int64_t3); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int64_t4 WaveActiveAllEqual(int64_t4); + +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint64_t WaveActiveAllEqual(uint64_t); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint64_t2 WaveActiveAllEqual(uint64_t2); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint64_t3 WaveActiveAllEqual(uint64_t3); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint64_t4 WaveActiveAllEqual(uint64_t4); + +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) float WaveActiveAllEqual(float); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) float2 WaveActiveAllEqual(float2); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) float3 WaveActiveAllEqual(float3); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) float4 WaveActiveAllEqual(float4); + +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) double WaveActiveAllEqual(double); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) double2 WaveActiveAllEqual(double2); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) double3 WaveActiveAllEqual(double3); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) double4 WaveActiveAllEqual(double4); + +#ifdef __HLSL_ENABLE_16_BIT +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int16_t1x1 WaveActiveAllEqual(int16_t1x1); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int16_t1x2 WaveActiveAllEqual(int16_t1x2); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int16_t1x3 WaveActiveAllEqual(int16_t1x3); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int16_t1x4 WaveActiveAllEqual(int16_t1x4); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int16_t2x1 WaveActiveAllEqual(int16_t2x1); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int16_t2x2 WaveActiveAllEqual(int16_t2x2); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int16_t2x3 WaveActiveAllEqual(int16_t2x3); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int16_t2x4 WaveActiveAllEqual(int16_t2x4); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int16_t3x1 WaveActiveAllEqual(int16_t3x1); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int16_t3x2 WaveActiveAllEqual(int16_t3x2); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int16_t3x3 WaveActiveAllEqual(int16_t3x3); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int16_t3x4 WaveActiveAllEqual(int16_t3x4); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int16_t4x1 WaveActiveAllEqual(int16_t4x1); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int16_t4x2 WaveActiveAllEqual(int16_t4x2); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int16_t4x3 WaveActiveAllEqual(int16_t4x3); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int16_t4x4 WaveActiveAllEqual(int16_t4x4); +_HLSL_AVAILABILITY(shadermodel, 6.0) + +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint16_t1x1 WaveActiveAllEqual(uint16_t1x1); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint16_t1x2 WaveActiveAllEqual(uint16_t1x2); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint16_t1x3 WaveActiveAllEqual(uint16_t1x3); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint16_t1x4 WaveActiveAllEqual(uint16_t1x4); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint16_t2x1 WaveActiveAllEqual(uint16_t2x1); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint16_t2x2 WaveActiveAllEqual(uint16_t2x2); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint16_t2x3 WaveActiveAllEqual(uint16_t2x3); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint16_t2x4 WaveActiveAllEqual(uint16_t2x4); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint16_t3x1 WaveActiveAllEqual(uint16_t3x1); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint16_t3x2 WaveActiveAllEqual(uint16_t3x2); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint16_t3x3 WaveActiveAllEqual(uint16_t3x3); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint16_t3x4 WaveActiveAllEqual(uint16_t3x4); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint16_t4x1 WaveActiveAllEqual(uint16_t4x1); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint16_t4x2 WaveActiveAllEqual(uint16_t4x2); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint16_t4x3 WaveActiveAllEqual(uint16_t4x3); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint16_t4x4 WaveActiveAllEqual(uint16_t4x4); +#endif + +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int1x1 WaveActiveAllEqual(int1x1); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int1x2 WaveActiveAllEqual(int1x2); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int1x3 WaveActiveAllEqual(int1x3); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int1x4 WaveActiveAllEqual(int1x4); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int2x1 WaveActiveAllEqual(int2x1); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int2x2 WaveActiveAllEqual(int2x2); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int2x3 WaveActiveAllEqual(int2x3); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int2x4 WaveActiveAllEqual(int2x4); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int3x1 WaveActiveAllEqual(int3x1); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int3x2 WaveActiveAllEqual(int3x2); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int3x3 WaveActiveAllEqual(int3x3); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int3x4 WaveActiveAllEqual(int3x4); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int4x1 WaveActiveAllEqual(int4x1); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int4x2 WaveActiveAllEqual(int4x2); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int4x3 WaveActiveAllEqual(int4x3); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) int4x4 WaveActiveAllEqual(int4x4); + +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint1x1 WaveActiveAllEqual(uint1x1); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint1x2 WaveActiveAllEqual(uint1x2); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint1x3 WaveActiveAllEqual(uint1x3); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint1x4 WaveActiveAllEqual(uint1x4); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint2x1 WaveActiveAllEqual(uint2x1); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint2x2 WaveActiveAllEqual(uint2x2); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint2x3 WaveActiveAllEqual(uint2x3); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint2x4 WaveActiveAllEqual(uint2x4); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint3x1 WaveActiveAllEqual(uint3x1); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) uint3x2 WaveActiveAllEqual(uint3x2); +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_all_equal) +__attribute__((convergent)) u... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/163971 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
