@@ -2015,12 +2015,85 @@ _HLSL_AVAILABILITY(shadermodel, 6.0)
2015
2015
_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_is_first_lane)
2016
2016
__attribute__((convergent)) bool WaveIsFirstLane();
2017
2017
2018
+ // ===----------------------------------------------------------------------===//
2019
+ // WaveReadLaneAt builtins
2020
+ // ===----------------------------------------------------------------------===//
2021
+
2018
2022
// \brief Returns the value of the expression for the given lane index within
2019
2023
// 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
2021
2035
_HLSL_AVAILABILITY (shadermodel, 6.0 )
2022
2036
_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 );
2024
2097
2025
2098
// ===----------------------------------------------------------------------===//
2026
2099
// sign builtins
0 commit comments