@@ -2015,12 +2015,85 @@ _HLSL_AVAILABILITY(shadermodel, 6.0)
20152015_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_is_first_lane)
20162016__attribute__((convergent)) bool WaveIsFirstLane();
20172017
2018+ // ===----------------------------------------------------------------------===//
2019+ // WaveReadLaneAt builtins
2020+ // ===----------------------------------------------------------------------===//
2021+
20182022// \brief Returns the value of the expression for the given lane index within
20192023// the specified wave.
2020- template <typename T>
2024+
2025+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2026+ __attribute__((convergent)) bool WaveReadLaneAt(bool , int32_t );
2027+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2028+ __attribute__((convergent)) bool2 WaveReadLaneAt(bool2, int32_t );
2029+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2030+ __attribute__((convergent)) bool3 WaveReadLaneAt(bool3, int32_t );
2031+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2032+ __attribute__((convergent)) bool4 WaveReadLaneAt(bool4, int32_t );
2033+
2034+ #ifdef __HLSL_ENABLE_16_BIT
20212035_HLSL_AVAILABILITY (shadermodel, 6.0 )
20222036_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2023- __attribute__((convergent)) T WaveReadLaneAt(T, int32_t );
2037+ __attribute__((convergent)) int16_t WaveReadLaneAt(int16_t , int32_t );
2038+ _HLSL_AVAILABILITY (shadermodel, 6.0 )
2039+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2040+ __attribute__((convergent)) int16_t2 WaveReadLaneAt(int16_t2, int32_t );
2041+ _HLSL_AVAILABILITY (shadermodel, 6.0 )
2042+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2043+ __attribute__((convergent)) int16_t3 WaveReadLaneAt(int16_t3, int32_t );
2044+ _HLSL_AVAILABILITY (shadermodel, 6.0 )
2045+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2046+ __attribute__((convergent)) int16_t4 WaveReadLaneAt(int16_t4, int32_t );
2047+ #endif
2048+
2049+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.0 )
2050+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2051+ __attribute__((convergent)) half WaveReadLaneAt(half, int32_t );
2052+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.0 )
2053+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2054+ __attribute__((convergent)) half2 WaveReadLaneAt(half2, int32_t );
2055+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.0 )
2056+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2057+ __attribute__((convergent)) half3 WaveReadLaneAt(half3, int32_t );
2058+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.0 )
2059+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2060+ __attribute__((convergent)) half4 WaveReadLaneAt(half4, int32_t );
2061+
2062+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2063+ __attribute__((convergent)) int WaveReadLaneAt(int , int32_t );
2064+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2065+ __attribute__((convergent)) int2 WaveReadLaneAt(int2, int32_t );
2066+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2067+ __attribute__((convergent)) int3 WaveReadLaneAt(int3, int32_t );
2068+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2069+ __attribute__((convergent)) int4 WaveReadLaneAt(int4, int32_t );
2070+
2071+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2072+ __attribute__((convergent)) float WaveReadLaneAt(float , int32_t );
2073+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2074+ __attribute__((convergent)) float2 WaveReadLaneAt(float2, int32_t );
2075+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2076+ __attribute__((convergent)) float3 WaveReadLaneAt(float3, int32_t );
2077+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2078+ __attribute__((convergent)) float4 WaveReadLaneAt(float4, int32_t );
2079+
2080+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2081+ __attribute__((convergent)) int64_t WaveReadLaneAt(int64_t , int32_t );
2082+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2083+ __attribute__((convergent)) int64_t2 WaveReadLaneAt(int64_t2, int32_t );
2084+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2085+ __attribute__((convergent)) int64_t3 WaveReadLaneAt(int64_t3, int32_t );
2086+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2087+ __attribute__((convergent)) int64_t4 WaveReadLaneAt(int64_t4, int32_t );
2088+
2089+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2090+ __attribute__((convergent)) double WaveReadLaneAt(double , int32_t );
2091+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2092+ __attribute__((convergent)) double2 WaveReadLaneAt(double2, int32_t );
2093+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2094+ __attribute__((convergent)) double3 WaveReadLaneAt(double3, int32_t );
2095+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2096+ __attribute__((convergent)) double4 WaveReadLaneAt(double4, int32_t );
20242097
20252098// ===----------------------------------------------------------------------===//
20262099// sign builtins
0 commit comments