@@ -2097,6 +2097,86 @@ _HLSL_AVAILABILITY(shadermodel, 6.0)
20972097_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_is_first_lane)
20982098__attribute__((convergent)) bool WaveIsFirstLane();
20992099
2100+ // ===----------------------------------------------------------------------===//
2101+ // WaveReadLaneAt builtins
2102+ // ===----------------------------------------------------------------------===//
2103+
2104+ // \brief Returns the value of the expression for the given lane index within
2105+ // the specified wave.
2106+
2107+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2108+ __attribute__((convergent)) bool WaveReadLaneAt(bool , int32_t );
2109+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2110+ __attribute__((convergent)) bool2 WaveReadLaneAt(bool2, int32_t );
2111+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2112+ __attribute__((convergent)) bool3 WaveReadLaneAt(bool3, int32_t );
2113+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2114+ __attribute__((convergent)) bool4 WaveReadLaneAt(bool4, int32_t );
2115+
2116+ #ifdef __HLSL_ENABLE_16_BIT
2117+ _HLSL_AVAILABILITY (shadermodel, 6.0 )
2118+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2119+ __attribute__((convergent)) int16_t WaveReadLaneAt(int16_t , int32_t );
2120+ _HLSL_AVAILABILITY (shadermodel, 6.0 )
2121+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2122+ __attribute__((convergent)) int16_t2 WaveReadLaneAt(int16_t2, int32_t );
2123+ _HLSL_AVAILABILITY (shadermodel, 6.0 )
2124+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2125+ __attribute__((convergent)) int16_t3 WaveReadLaneAt(int16_t3, int32_t );
2126+ _HLSL_AVAILABILITY (shadermodel, 6.0 )
2127+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2128+ __attribute__((convergent)) int16_t4 WaveReadLaneAt(int16_t4, int32_t );
2129+ #endif
2130+
2131+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.0 )
2132+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2133+ __attribute__((convergent)) half WaveReadLaneAt(half, int32_t );
2134+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.0 )
2135+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2136+ __attribute__((convergent)) half2 WaveReadLaneAt(half2, int32_t );
2137+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.0 )
2138+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2139+ __attribute__((convergent)) half3 WaveReadLaneAt(half3, int32_t );
2140+ _HLSL_16BIT_AVAILABILITY (shadermodel, 6.0 )
2141+ _HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_read_lane_at)
2142+ __attribute__((convergent)) half4 WaveReadLaneAt(half4, int32_t );
2143+
2144+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2145+ __attribute__((convergent)) int WaveReadLaneAt(int , int32_t );
2146+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2147+ __attribute__((convergent)) int2 WaveReadLaneAt(int2, int32_t );
2148+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2149+ __attribute__((convergent)) int3 WaveReadLaneAt(int3, int32_t );
2150+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2151+ __attribute__((convergent)) int4 WaveReadLaneAt(int4, int32_t );
2152+
2153+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2154+ __attribute__((convergent)) float WaveReadLaneAt(float , int32_t );
2155+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2156+ __attribute__((convergent)) float2 WaveReadLaneAt(float2, int32_t );
2157+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2158+ __attribute__((convergent)) float3 WaveReadLaneAt(float3, int32_t );
2159+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2160+ __attribute__((convergent)) float4 WaveReadLaneAt(float4, int32_t );
2161+
2162+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2163+ __attribute__((convergent)) int64_t WaveReadLaneAt(int64_t , int32_t );
2164+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2165+ __attribute__((convergent)) int64_t2 WaveReadLaneAt(int64_t2, int32_t );
2166+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2167+ __attribute__((convergent)) int64_t3 WaveReadLaneAt(int64_t3, int32_t );
2168+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2169+ __attribute__((convergent)) int64_t4 WaveReadLaneAt(int64_t4, int32_t );
2170+
2171+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2172+ __attribute__((convergent)) double WaveReadLaneAt(double , int32_t );
2173+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2174+ __attribute__((convergent)) double2 WaveReadLaneAt(double2, int32_t );
2175+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2176+ __attribute__((convergent)) double3 WaveReadLaneAt(double3, int32_t );
2177+ _HLSL_BUILTIN_ALIAS (__builtin_hlsl_wave_read_lane_at)
2178+ __attribute__((convergent)) double4 WaveReadLaneAt(double4, int32_t );
2179+
21002180// ===----------------------------------------------------------------------===//
21012181// sign builtins
21022182// ===----------------------------------------------------------------------===//
0 commit comments