Add const-eval for `degrees` and `radians` This CL adds const-eval for `degrees` and `radians`. Bug: tint:1581 Change-Id: I7f00e2b1e5ab7c8e895680a6b75b9531dac31f5a Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/110601 Commit-Queue: Dan Sinclair <dsinclair@chromium.org> Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: Antonio Maiorano <amaiorano@google.com>
diff --git a/src/tint/intrinsics.def b/src/tint/intrinsics.def index 7d51d76..7a18e17 100644 --- a/src/tint/intrinsics.def +++ b/src/tint/intrinsics.def
@@ -440,8 +440,8 @@ @const fn countTrailingZeros<T: iu32>(T) -> T @const fn countTrailingZeros<N: num, T: iu32>(vec<N, T>) -> vec<N, T> @const fn cross<T: fa_f32_f16>(vec3<T>, vec3<T>) -> vec3<T> -fn degrees<T: f32_f16>(T) -> T -fn degrees<N: num, T: f32_f16>(vec<N, T>) -> vec<N, T> +@const fn degrees<T: fa_f32_f16>(T) -> T +@const fn degrees<N: num, T: fa_f32_f16>(vec<N, T>) -> vec<N, T> fn determinant<N: num, T: f32_f16>(mat<N, N, T>) -> T fn distance<T: f32_f16>(T, T) -> T fn distance<N: num, T: f32_f16>(vec<N, T>, vec<N, T>) -> T @@ -516,8 +516,8 @@ fn pow<N: num, T: f32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T> @const fn quantizeToF16(f32) -> f32 @const fn quantizeToF16<N: num>(vec<N, f32>) -> vec<N, f32> -fn radians<T: f32_f16>(T) -> T -fn radians<N: num, T: f32_f16>(vec<N, T>) -> vec<N, T> +@const fn radians<T: fa_f32_f16>(T) -> T +@const fn radians<N: num, T: fa_f32_f16>(vec<N, T>) -> vec<N, T> fn reflect<N: num, T: f32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T> fn refract<N: num, T: f32_f16>(vec<N, T>, vec<N, T>, T) -> vec<N, T> @const fn reverseBits<T: iu32>(T) -> T
diff --git a/src/tint/number.h b/src/tint/number.h index 4fa6ed7..dc66689 100644 --- a/src/tint/number.h +++ b/src/tint/number.h
@@ -274,6 +274,9 @@ /// However since C++ don't have native binary16 type, the value is stored as float. using f16 = Number<detail::NumberKindF16>; +template <typename T, traits::EnableIf<IsFloatingPoint<T>>* = nullptr> +inline const auto kPi = T(UnwrapNumber<T>(3.14159265358979323846)); + /// True iff T is an abstract number type template <typename T> constexpr bool IsAbstract = std::is_same_v<T, AInt> || std::is_same_v<T, AFloat>;
diff --git a/src/tint/resolver/const_eval.cc b/src/tint/resolver/const_eval.cc index 13ca038..f75481c 100644 --- a/src/tint/resolver/const_eval.cc +++ b/src/tint/resolver/const_eval.cc
@@ -1954,6 +1954,32 @@ utils::Vector<const sem::Constant*, 3>{x.Get(), y.Get(), z.Get()}); } +ConstEval::Result ConstEval::degrees(const sem::Type* ty, + utils::VectorRef<const sem::Constant*> args, + const Source& source) { + auto transform = [&](const sem::Constant* c0) { + auto create = [&](auto e) -> ImplResult { + using NumberT = decltype(e); + using T = UnwrapNumber<NumberT>; + + auto pi = kPi<T>; + auto scale = Div(source, NumberT(180), NumberT(pi)); + if (!scale) { + AddNote("when calculating degrees", source); + return utils::Failure; + } + auto result = Mul(source, e, scale.Get()); + if (!result) { + AddNote("when calculating degrees", source); + return utils::Failure; + } + return CreateElement(builder, source, c0->Type(), result.Get()); + }; + return Dispatch_fa_f32_f16(create, c0); + }; + return TransformElements(builder, ty, transform, args[0]); +} + ConstEval::Result ConstEval::extractBits(const sem::Type* ty, utils::VectorRef<const sem::Constant*> args, const Source& source) { @@ -2267,6 +2293,32 @@ return CreateElement(builder, source, ty, ret); } +ConstEval::Result ConstEval::radians(const sem::Type* ty, + utils::VectorRef<const sem::Constant*> args, + const Source& source) { + auto transform = [&](const sem::Constant* c0) { + auto create = [&](auto e) -> ImplResult { + using NumberT = decltype(e); + using T = UnwrapNumber<NumberT>; + + auto pi = kPi<T>; + auto scale = Div(source, NumberT(pi), NumberT(180)); + if (!scale) { + AddNote("when calculating radians", source); + return utils::Failure; + } + auto result = Mul(source, e, scale.Get()); + if (!result) { + AddNote("when calculating radians", source); + return utils::Failure; + } + return CreateElement(builder, source, c0->Type(), result.Get()); + }; + return Dispatch_fa_f32_f16(create, c0); + }; + return TransformElements(builder, ty, transform, args[0]); +} + ConstEval::Result ConstEval::reverseBits(const sem::Type* ty, utils::VectorRef<const sem::Constant*> args, const Source& source) {
diff --git a/src/tint/resolver/const_eval.h b/src/tint/resolver/const_eval.h index 73274a1..5e2a97f 100644 --- a/src/tint/resolver/const_eval.h +++ b/src/tint/resolver/const_eval.h
@@ -539,6 +539,15 @@ utils::VectorRef<const sem::Constant*> args, const Source& source); + /// degrees builtin + /// @param ty the expression type + /// @param args the input arguments + /// @param source the source location of the conversion + /// @return the result value, or null if the value cannot be calculated + Result degrees(const sem::Type* ty, + utils::VectorRef<const sem::Constant*> args, + const Source& source); + /// extractBits builtin /// @param ty the expression type /// @param args the input arguments @@ -647,6 +656,15 @@ utils::VectorRef<const sem::Constant*> args, const Source& source); + /// radians builtin + /// @param ty the expression type + /// @param args the input arguments + /// @param source the source location of the conversion + /// @return the result value, or null if the value cannot be calculated + Result radians(const sem::Type* ty, + utils::VectorRef<const sem::Constant*> args, + const Source& source); + /// reverseBits builtin /// @param ty the expression type /// @param args the input arguments
diff --git a/src/tint/resolver/const_eval_builtin_test.cc b/src/tint/resolver/const_eval_builtin_test.cc index 4b0ff0b..1bf0bd0 100644 --- a/src/tint/resolver/const_eval_builtin_test.cc +++ b/src/tint/resolver/const_eval_builtin_test.cc
@@ -994,6 +994,57 @@ InsertBitsCases<u32>())))); template <typename T> +std::vector<Case> DegreesAFloatCases() { + return std::vector<Case>{ + C({T(0)}, T(0)), // + C({-T(0)}, -T(0)), // + C({T(0.698132)}, T(40)).FloatComp(), // + C({-T(1.5708)}, -T(90.000214)).FloatComp(), // + C({T(1.5708)}, T(90.000214)).FloatComp(), // + C({T(6.28319)}, T(360.00027)).FloatComp(), + }; +} +INSTANTIATE_TEST_SUITE_P( // + DegreesAFloat, + ResolverConstEvalBuiltinTest, + testing::Combine(testing::Values(sem::BuiltinType::kDegrees), + testing::ValuesIn(DegreesAFloatCases<AFloat>()))); + +template <typename T> +std::vector<Case> DegreesF32Cases() { + return std::vector<Case>{ + C({T(0)}, T(0)), // + C({-T(0)}, -T(0)), // + C({T(0.698132)}, T(40)).FloatComp(), // + C({-T(1.5708)}, -T(90.000206)).FloatComp(), // + C({T(1.5708)}, T(90.000206)).FloatComp(), // + C({T(6.28319)}, T(360.00024)).FloatComp(), + }; +} +INSTANTIATE_TEST_SUITE_P( // + DegreesF32, + ResolverConstEvalBuiltinTest, + testing::Combine(testing::Values(sem::BuiltinType::kDegrees), + testing::ValuesIn(DegreesF32Cases<f32>()))); + +template <typename T> +std::vector<Case> DegreesF16Cases() { + return std::vector<Case>{ + C({T(0)}, T(0)), // + C({-T(0)}, -T(0)), // + C({T(0.698132)}, T(39.96875)).FloatComp(), // + C({-T(1.5708)}, -T(89.9375)).FloatComp(), // + C({T(1.5708)}, T(89.9375)).FloatComp(), // + C({T(6.28319)}, T(359.75)).FloatComp(), + }; +} +INSTANTIATE_TEST_SUITE_P( // + DegreesF16, + ResolverConstEvalBuiltinTest, + testing::Combine(testing::Values(sem::BuiltinType::kDegrees), + testing::ValuesIn(DegreesF16Cases<f16>()))); + +template <typename T> std::vector<Case> ExtractBitsCases() { using UT = Number<std::make_unsigned_t<UnwrapNumber<T>>>; @@ -1276,6 +1327,41 @@ ReverseBitsCases<u32>())))); template <typename T> +std::vector<Case> RadiansCases() { + return std::vector<Case>{ + C({T(0)}, T(0)), // + C({-T(0)}, -T(0)), // + C({T(40)}, T(0.69813168)).FloatComp(), // + C({-T(90)}, -T(1.5707964)).FloatComp(), // + C({T(90)}, T(1.5707964)).FloatComp(), // + C({T(360)}, T(6.2831855)).FloatComp(), + }; +} +INSTANTIATE_TEST_SUITE_P( // + Radians, + ResolverConstEvalBuiltinTest, + testing::Combine(testing::Values(sem::BuiltinType::kRadians), + testing::ValuesIn(Concat(RadiansCases<AFloat>(), // + RadiansCases<f32>())))); + +template <typename T> +std::vector<Case> RadiansF16Cases() { + return std::vector<Case>{ + C({T(0)}, T(0)), // + C({-T(0)}, -T(0)), // + C({T(40)}, T(0.69726562)).FloatComp(), // + C({-T(90)}, -T(1.5693359)).FloatComp(), // + C({T(90)}, T(1.5693359)).FloatComp(), // + C({T(360)}, T(6.2773438)).FloatComp(), + }; +} +INSTANTIATE_TEST_SUITE_P( // + RadiansF16, + ResolverConstEvalBuiltinTest, + testing::Combine(testing::Values(sem::BuiltinType::kRadians), + testing::ValuesIn(RadiansF16Cases<f16>()))); + +template <typename T> std::vector<Case> RoundCases() { std::vector<Case> cases = { C({T(0.0)}, T(0.0)), //
diff --git a/src/tint/resolver/const_eval_test.h b/src/tint/resolver/const_eval_test.h index 0cedf25..c2e12bc 100644 --- a/src/tint/resolver/const_eval_test.h +++ b/src/tint/resolver/const_eval_test.h
@@ -27,9 +27,6 @@ namespace tint::resolver { template <typename T> -inline const auto kPi = T(UnwrapNumber<T>(3.14159265358979323846)); - -template <typename T> inline const auto kPiOver2 = T(UnwrapNumber<T>(1.57079632679489661923)); template <typename T>
diff --git a/src/tint/resolver/intrinsic_table.inl b/src/tint/resolver/intrinsic_table.inl index 3b0b88d..9e76862 100644 --- a/src/tint/resolver/intrinsic_table.inl +++ b/src/tint/resolver/intrinsic_table.inl
@@ -12174,24 +12174,24 @@ /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[26], + /* template types */ &kTemplateTypes[23], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[835], /* return matcher indices */ &kMatcherIndices[3], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, + /* const eval */ &ConstEval::degrees, }, { /* [322] */ /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[26], + /* template types */ &kTemplateTypes[23], /* template numbers */ &kTemplateNumbers[4], /* parameters */ &kParameters[836], /* return matcher indices */ &kMatcherIndices[30], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, + /* const eval */ &ConstEval::degrees, }, { /* [323] */ @@ -12918,24 +12918,24 @@ /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[26], + /* template types */ &kTemplateTypes[23], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[888], /* return matcher indices */ &kMatcherIndices[3], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, + /* const eval */ &ConstEval::radians, }, { /* [384] */ /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[26], + /* template types */ &kTemplateTypes[23], /* template numbers */ &kTemplateNumbers[4], /* parameters */ &kParameters[889], /* return matcher indices */ &kMatcherIndices[30], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, + /* const eval */ &ConstEval::radians, }, { /* [385] */ @@ -14117,8 +14117,8 @@ }, { /* [19] */ - /* fn degrees<T : f32_f16>(T) -> T */ - /* fn degrees<N : num, T : f32_f16>(vec<N, T>) -> vec<N, T> */ + /* fn degrees<T : fa_f32_f16>(T) -> T */ + /* fn degrees<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */ /* num overloads */ 2, /* overloads */ &kOverloads[321], }, @@ -14408,8 +14408,8 @@ }, { /* [62] */ - /* fn radians<T : f32_f16>(T) -> T */ - /* fn radians<N : num, T : f32_f16>(vec<N, T>) -> vec<N, T> */ + /* fn radians<T : fa_f32_f16>(T) -> T */ + /* fn radians<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */ /* num overloads */ 2, /* overloads */ &kOverloads[383], },
diff --git a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.dxc.hlsl index 2cd2296..63b2df2 100644 --- a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.dxc.hlsl
@@ -1,9 +1,5 @@ -float4 tint_degrees(float4 param_0) { - return param_0 * 57.295779513082322865; -} - void degrees_0d170c() { - float4 res = tint_degrees((1.0f).xxxx); + float4 res = (57.295776367f).xxxx; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.fxc.hlsl index 2cd2296..63b2df2 100644 --- a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.fxc.hlsl
@@ -1,9 +1,5 @@ -float4 tint_degrees(float4 param_0) { - return param_0 * 57.295779513082322865; -} - void degrees_0d170c() { - float4 res = tint_degrees((1.0f).xxxx); + float4 res = (57.295776367f).xxxx; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.glsl index 542dec0..4269efe 100644 --- a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.glsl
@@ -1,12 +1,7 @@ #version 310 es -vec4 tint_degrees(vec4 param_0) { - return param_0 * 57.295779513082322865f; -} - - void degrees_0d170c() { - vec4 res = tint_degrees(vec4(1.0f)); + vec4 res = vec4(57.295776367f); } vec4 vertex_main() { @@ -25,13 +20,8 @@ #version 310 es precision mediump float; -vec4 tint_degrees(vec4 param_0) { - return param_0 * 57.295779513082322865f; -} - - void degrees_0d170c() { - vec4 res = tint_degrees(vec4(1.0f)); + vec4 res = vec4(57.295776367f); } void fragment_main() { @@ -44,13 +34,8 @@ } #version 310 es -vec4 tint_degrees(vec4 param_0) { - return param_0 * 57.295779513082322865f; -} - - void degrees_0d170c() { - vec4 res = tint_degrees(vec4(1.0f)); + vec4 res = vec4(57.295776367f); } void compute_main() {
diff --git a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.msl b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.msl index 8dc825c..ef0d58a 100644 --- a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.msl
@@ -1,13 +1,8 @@ #include <metal_stdlib> using namespace metal; - -float4 tint_degrees(float4 param_0) { - return param_0 * 57.295779513082322865; -} - void degrees_0d170c() { - float4 res = tint_degrees(float4(1.0f)); + float4 res = float4(57.295776367f); } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.spvasm index 738ca27..ba056b9 100644 --- a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.spvasm
@@ -1,10 +1,9 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 32 +; Bound: 31 ; Schema: 0 OpCapability Shader - %14 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size OpEntryPoint Fragment %fragment_main "fragment_main" @@ -31,36 +30,36 @@ %vertex_point_size = OpVariable %_ptr_Output_float Output %8 %void = OpTypeVoid %9 = OpTypeFunction %void - %float_1 = OpConstant %float 1 - %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 +%float_57_2957764 = OpConstant %float 57.2957764 + %14 = OpConstantComposite %v4float %float_57_2957764 %float_57_2957764 %float_57_2957764 %float_57_2957764 %_ptr_Function_v4float = OpTypePointer Function %v4float - %19 = OpTypeFunction %v4float + %17 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 %degrees_0d170c = OpFunction %void None %9 %12 = OpLabel %res = OpVariable %_ptr_Function_v4float Function %5 - %13 = OpExtInst %v4float %14 Degrees %16 - OpStore %res %13 + OpStore %res %14 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %19 - %21 = OpLabel - %22 = OpFunctionCall %void %degrees_0d170c +%vertex_main_inner = OpFunction %v4float None %17 + %19 = OpLabel + %20 = OpFunctionCall %void %degrees_0d170c OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %24 = OpLabel - %25 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %25 + %22 = OpLabel + %23 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %23 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %27 = OpLabel - %28 = OpFunctionCall %void %degrees_0d170c + %26 = OpLabel + %27 = OpFunctionCall %void %degrees_0d170c OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %30 = OpLabel - %31 = OpFunctionCall %void %degrees_0d170c + %29 = OpLabel + %30 = OpFunctionCall %void %degrees_0d170c OpReturn OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.dxc.hlsl index f8315be..cbe6583 100644 --- a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.dxc.hlsl
@@ -1,9 +1,5 @@ -float2 tint_degrees(float2 param_0) { - return param_0 * 57.295779513082322865; -} - void degrees_1ad5df() { - float2 res = tint_degrees((1.0f).xx); + float2 res = (57.295776367f).xx; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.fxc.hlsl index f8315be..cbe6583 100644 --- a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.fxc.hlsl
@@ -1,9 +1,5 @@ -float2 tint_degrees(float2 param_0) { - return param_0 * 57.295779513082322865; -} - void degrees_1ad5df() { - float2 res = tint_degrees((1.0f).xx); + float2 res = (57.295776367f).xx; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.glsl index b3dfe33..8640b14 100644 --- a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.glsl
@@ -1,12 +1,7 @@ #version 310 es -vec2 tint_degrees(vec2 param_0) { - return param_0 * 57.295779513082322865f; -} - - void degrees_1ad5df() { - vec2 res = tint_degrees(vec2(1.0f)); + vec2 res = vec2(57.295776367f); } vec4 vertex_main() { @@ -25,13 +20,8 @@ #version 310 es precision mediump float; -vec2 tint_degrees(vec2 param_0) { - return param_0 * 57.295779513082322865f; -} - - void degrees_1ad5df() { - vec2 res = tint_degrees(vec2(1.0f)); + vec2 res = vec2(57.295776367f); } void fragment_main() { @@ -44,13 +34,8 @@ } #version 310 es -vec2 tint_degrees(vec2 param_0) { - return param_0 * 57.295779513082322865f; -} - - void degrees_1ad5df() { - vec2 res = tint_degrees(vec2(1.0f)); + vec2 res = vec2(57.295776367f); } void compute_main() {
diff --git a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.msl b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.msl index e46d2ff..4af91d1 100644 --- a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.msl
@@ -1,13 +1,8 @@ #include <metal_stdlib> using namespace metal; - -float2 tint_degrees(float2 param_0) { - return param_0 * 57.295779513082322865; -} - void degrees_1ad5df() { - float2 res = tint_degrees(float2(1.0f)); + float2 res = float2(57.295776367f); } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.spvasm index 573f04d..9c5c485 100644 --- a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.spvasm
@@ -1,10 +1,9 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 34 +; Bound: 33 ; Schema: 0 OpCapability Shader - %15 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size OpEntryPoint Fragment %fragment_main "fragment_main" @@ -32,37 +31,37 @@ %void = OpTypeVoid %9 = OpTypeFunction %void %v2float = OpTypeVector %float 2 - %float_1 = OpConstant %float 1 - %17 = OpConstantComposite %v2float %float_1 %float_1 +%float_57_2957764 = OpConstant %float 57.2957764 + %15 = OpConstantComposite %v2float %float_57_2957764 %float_57_2957764 %_ptr_Function_v2float = OpTypePointer Function %v2float - %20 = OpConstantNull %v2float - %21 = OpTypeFunction %v4float + %18 = OpConstantNull %v2float + %19 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 %degrees_1ad5df = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v2float Function %20 - %13 = OpExtInst %v2float %15 Degrees %17 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v2float Function %18 + OpStore %res %15 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %21 - %23 = OpLabel - %24 = OpFunctionCall %void %degrees_1ad5df +%vertex_main_inner = OpFunction %v4float None %19 + %21 = OpLabel + %22 = OpFunctionCall %void %degrees_1ad5df OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %26 = OpLabel - %27 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %27 + %24 = OpLabel + %25 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %25 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %29 = OpLabel - %30 = OpFunctionCall %void %degrees_1ad5df + %28 = OpLabel + %29 = OpFunctionCall %void %degrees_1ad5df OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %32 = OpLabel - %33 = OpFunctionCall %void %degrees_1ad5df + %31 = OpLabel + %32 = OpFunctionCall %void %degrees_1ad5df OpReturn OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.dxc.hlsl index 292fa3a..fa9e278 100644 --- a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.dxc.hlsl
@@ -1,9 +1,5 @@ -float3 tint_degrees(float3 param_0) { - return param_0 * 57.295779513082322865; -} - void degrees_2af623() { - float3 res = tint_degrees((1.0f).xxx); + float3 res = (57.295776367f).xxx; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.fxc.hlsl index 292fa3a..fa9e278 100644 --- a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.fxc.hlsl
@@ -1,9 +1,5 @@ -float3 tint_degrees(float3 param_0) { - return param_0 * 57.295779513082322865; -} - void degrees_2af623() { - float3 res = tint_degrees((1.0f).xxx); + float3 res = (57.295776367f).xxx; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.glsl index fa064b9..08b51ee 100644 --- a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.glsl
@@ -1,12 +1,7 @@ #version 310 es -vec3 tint_degrees(vec3 param_0) { - return param_0 * 57.295779513082322865f; -} - - void degrees_2af623() { - vec3 res = tint_degrees(vec3(1.0f)); + vec3 res = vec3(57.295776367f); } vec4 vertex_main() { @@ -25,13 +20,8 @@ #version 310 es precision mediump float; -vec3 tint_degrees(vec3 param_0) { - return param_0 * 57.295779513082322865f; -} - - void degrees_2af623() { - vec3 res = tint_degrees(vec3(1.0f)); + vec3 res = vec3(57.295776367f); } void fragment_main() { @@ -44,13 +34,8 @@ } #version 310 es -vec3 tint_degrees(vec3 param_0) { - return param_0 * 57.295779513082322865f; -} - - void degrees_2af623() { - vec3 res = tint_degrees(vec3(1.0f)); + vec3 res = vec3(57.295776367f); } void compute_main() {
diff --git a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.msl b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.msl index 4874bbb..4da3b35 100644 --- a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.msl
@@ -1,13 +1,8 @@ #include <metal_stdlib> using namespace metal; - -float3 tint_degrees(float3 param_0) { - return param_0 * 57.295779513082322865; -} - void degrees_2af623() { - float3 res = tint_degrees(float3(1.0f)); + float3 res = float3(57.295776367f); } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.spvasm index 160a383..b692ad7 100644 --- a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.spvasm
@@ -1,10 +1,9 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 34 +; Bound: 33 ; Schema: 0 OpCapability Shader - %15 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size OpEntryPoint Fragment %fragment_main "fragment_main" @@ -32,37 +31,37 @@ %void = OpTypeVoid %9 = OpTypeFunction %void %v3float = OpTypeVector %float 3 - %float_1 = OpConstant %float 1 - %17 = OpConstantComposite %v3float %float_1 %float_1 %float_1 +%float_57_2957764 = OpConstant %float 57.2957764 + %15 = OpConstantComposite %v3float %float_57_2957764 %float_57_2957764 %float_57_2957764 %_ptr_Function_v3float = OpTypePointer Function %v3float - %20 = OpConstantNull %v3float - %21 = OpTypeFunction %v4float + %18 = OpConstantNull %v3float + %19 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 %degrees_2af623 = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v3float Function %20 - %13 = OpExtInst %v3float %15 Degrees %17 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v3float Function %18 + OpStore %res %15 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %21 - %23 = OpLabel - %24 = OpFunctionCall %void %degrees_2af623 +%vertex_main_inner = OpFunction %v4float None %19 + %21 = OpLabel + %22 = OpFunctionCall %void %degrees_2af623 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %26 = OpLabel - %27 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %27 + %24 = OpLabel + %25 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %25 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %29 = OpLabel - %30 = OpFunctionCall %void %degrees_2af623 + %28 = OpLabel + %29 = OpFunctionCall %void %degrees_2af623 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %32 = OpLabel - %33 = OpFunctionCall %void %degrees_2af623 + %31 = OpLabel + %32 = OpFunctionCall %void %degrees_2af623 OpReturn OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.dxc.hlsl index ff572fd..3ec4e92 100644 --- a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.dxc.hlsl
@@ -1,9 +1,5 @@ -vector<float16_t, 4> tint_degrees(vector<float16_t, 4> param_0) { - return param_0 * 57.295779513082322865; -} - void degrees_3055d3() { - vector<float16_t, 4> res = tint_degrees((float16_t(1.0h)).xxxx); + vector<float16_t, 4> res = (float16_t(57.3125h)).xxxx; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.glsl index b9788e1..1820254 100644 --- a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.glsl
@@ -1,13 +1,8 @@ #version 310 es #extension GL_AMD_gpu_shader_half_float : require -f16vec4 tint_degrees(f16vec4 param_0) { - return param_0 * 57.295779513082322865hf; -} - - void degrees_3055d3() { - f16vec4 res = tint_degrees(f16vec4(1.0hf)); + f16vec4 res = f16vec4(57.3125hf); } vec4 vertex_main() { @@ -27,13 +22,8 @@ #extension GL_AMD_gpu_shader_half_float : require precision mediump float; -f16vec4 tint_degrees(f16vec4 param_0) { - return param_0 * 57.295779513082322865hf; -} - - void degrees_3055d3() { - f16vec4 res = tint_degrees(f16vec4(1.0hf)); + f16vec4 res = f16vec4(57.3125hf); } void fragment_main() { @@ -47,13 +37,8 @@ #version 310 es #extension GL_AMD_gpu_shader_half_float : require -f16vec4 tint_degrees(f16vec4 param_0) { - return param_0 * 57.295779513082322865hf; -} - - void degrees_3055d3() { - f16vec4 res = tint_degrees(f16vec4(1.0hf)); + f16vec4 res = f16vec4(57.3125hf); } void compute_main() {
diff --git a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.msl b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.msl index e9fe3c7..dbbd520 100644 --- a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.msl
@@ -1,13 +1,8 @@ #include <metal_stdlib> using namespace metal; - -half4 tint_degrees(half4 param_0) { - return param_0 * 57.295779513082322865; -} - void degrees_3055d3() { - half4 res = tint_degrees(half4(1.0h)); + half4 res = half4(57.3125h); } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.spvasm index 171e19c..ba293b3 100644 --- a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.spvasm
@@ -1,14 +1,13 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 36 +; Bound: 34 ; Schema: 0 OpCapability Shader OpCapability Float16 OpCapability UniformAndStorageBuffer16BitAccess OpCapability StorageBuffer16BitAccess OpCapability StorageInputOutput16 - %16 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size OpEntryPoint Fragment %fragment_main "fragment_main" @@ -37,38 +36,37 @@ %9 = OpTypeFunction %void %half = OpTypeFloat 16 %v4half = OpTypeVector %half 4 -%half_0x1p_0 = OpConstant %half 0x1p+0 - %18 = OpConstantComposite %v4half %half_0x1p_0 %half_0x1p_0 %half_0x1p_0 %half_0x1p_0 +%half_0x1_ca8p_5 = OpConstant %half 0x1.ca8p+5 + %16 = OpConstantComposite %v4half %half_0x1_ca8p_5 %half_0x1_ca8p_5 %half_0x1_ca8p_5 %half_0x1_ca8p_5 %_ptr_Function_v4half = OpTypePointer Function %v4half - %21 = OpConstantNull %v4half - %22 = OpTypeFunction %v4float + %19 = OpConstantNull %v4half + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %degrees_3055d3 = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v4half Function %21 - %13 = OpExtInst %v4half %16 Degrees %18 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v4half Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %22 - %24 = OpLabel - %25 = OpFunctionCall %void %degrees_3055d3 +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %degrees_3055d3 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %27 = OpLabel - %28 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %28 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %31 = OpLabel - %32 = OpFunctionCall %void %degrees_3055d3 + %29 = OpLabel + %30 = OpFunctionCall %void %degrees_3055d3 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %34 = OpLabel - %35 = OpFunctionCall %void %degrees_3055d3 + %32 = OpLabel + %33 = OpFunctionCall %void %degrees_3055d3 OpReturn OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.dxc.hlsl index feab0fb..360efa4 100644 --- a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.dxc.hlsl
@@ -1,9 +1,5 @@ -float tint_degrees(float param_0) { - return param_0 * 57.295779513082322865; -} - void degrees_51f705() { - float res = tint_degrees(1.0f); + float res = 57.295776367f; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.fxc.hlsl index feab0fb..360efa4 100644 --- a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.fxc.hlsl
@@ -1,9 +1,5 @@ -float tint_degrees(float param_0) { - return param_0 * 57.295779513082322865; -} - void degrees_51f705() { - float res = tint_degrees(1.0f); + float res = 57.295776367f; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.glsl index 3357c9e..a9b22b4 100644 --- a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.glsl
@@ -1,12 +1,7 @@ #version 310 es -float tint_degrees(float param_0) { - return param_0 * 57.295779513082322865f; -} - - void degrees_51f705() { - float res = tint_degrees(1.0f); + float res = 57.295776367f; } vec4 vertex_main() { @@ -25,13 +20,8 @@ #version 310 es precision mediump float; -float tint_degrees(float param_0) { - return param_0 * 57.295779513082322865f; -} - - void degrees_51f705() { - float res = tint_degrees(1.0f); + float res = 57.295776367f; } void fragment_main() { @@ -44,13 +34,8 @@ } #version 310 es -float tint_degrees(float param_0) { - return param_0 * 57.295779513082322865f; -} - - void degrees_51f705() { - float res = tint_degrees(1.0f); + float res = 57.295776367f; } void compute_main() {
diff --git a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.msl b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.msl index 6c29fa0..6ff8e85 100644 --- a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.msl
@@ -1,13 +1,8 @@ #include <metal_stdlib> using namespace metal; - -float tint_degrees(float param_0) { - return param_0 * 57.295779513082322865; -} - void degrees_51f705() { - float res = tint_degrees(1.0f); + float res = 57.295776367f; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.spvasm index 84e3e97..9c98fce 100644 --- a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.spvasm
@@ -1,10 +1,9 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 31 +; Bound: 30 ; Schema: 0 OpCapability Shader - %14 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size OpEntryPoint Fragment %fragment_main "fragment_main" @@ -31,35 +30,35 @@ %vertex_point_size = OpVariable %_ptr_Output_float Output %8 %void = OpTypeVoid %9 = OpTypeFunction %void - %float_1 = OpConstant %float 1 +%float_57_2957764 = OpConstant %float 57.2957764 %_ptr_Function_float = OpTypePointer Function %float - %18 = OpTypeFunction %v4float + %16 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 %degrees_51f705 = OpFunction %void None %9 %12 = OpLabel %res = OpVariable %_ptr_Function_float Function %8 - %13 = OpExtInst %float %14 Degrees %float_1 - OpStore %res %13 + OpStore %res %float_57_2957764 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %18 - %20 = OpLabel - %21 = OpFunctionCall %void %degrees_51f705 +%vertex_main_inner = OpFunction %v4float None %16 + %18 = OpLabel + %19 = OpFunctionCall %void %degrees_51f705 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %23 = OpLabel - %24 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %24 + %21 = OpLabel + %22 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %22 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %26 = OpLabel - %27 = OpFunctionCall %void %degrees_51f705 + %25 = OpLabel + %26 = OpFunctionCall %void %degrees_51f705 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %29 = OpLabel - %30 = OpFunctionCall %void %degrees_51f705 + %28 = OpLabel + %29 = OpFunctionCall %void %degrees_51f705 OpReturn OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.dxc.hlsl index 930472f..eff605b 100644 --- a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.dxc.hlsl
@@ -1,9 +1,5 @@ -float16_t tint_degrees(float16_t param_0) { - return param_0 * 57.295779513082322865; -} - void degrees_5e9805() { - float16_t res = tint_degrees(float16_t(1.0h)); + float16_t res = float16_t(57.3125h); } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.glsl index 3042f4c..1ef9dcf 100644 --- a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.glsl
@@ -1,13 +1,8 @@ #version 310 es #extension GL_AMD_gpu_shader_half_float : require -float16_t tint_degrees(float16_t param_0) { - return param_0 * 57.295779513082322865hf; -} - - void degrees_5e9805() { - float16_t res = tint_degrees(1.0hf); + float16_t res = 57.3125hf; } vec4 vertex_main() { @@ -27,13 +22,8 @@ #extension GL_AMD_gpu_shader_half_float : require precision mediump float; -float16_t tint_degrees(float16_t param_0) { - return param_0 * 57.295779513082322865hf; -} - - void degrees_5e9805() { - float16_t res = tint_degrees(1.0hf); + float16_t res = 57.3125hf; } void fragment_main() { @@ -47,13 +37,8 @@ #version 310 es #extension GL_AMD_gpu_shader_half_float : require -float16_t tint_degrees(float16_t param_0) { - return param_0 * 57.295779513082322865hf; -} - - void degrees_5e9805() { - float16_t res = tint_degrees(1.0hf); + float16_t res = 57.3125hf; } void compute_main() {
diff --git a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.msl b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.msl index 280c0bc..8a94020 100644 --- a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.msl
@@ -1,13 +1,8 @@ #include <metal_stdlib> using namespace metal; - -half tint_degrees(half param_0) { - return param_0 * 57.295779513082322865; -} - void degrees_5e9805() { - half res = tint_degrees(1.0h); + half res = 57.3125h; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.spvasm index 9a33ca6..a942b16 100644 --- a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.spvasm
@@ -1,14 +1,13 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 34 +; Bound: 32 ; Schema: 0 OpCapability Shader OpCapability Float16 OpCapability UniformAndStorageBuffer16BitAccess OpCapability StorageBuffer16BitAccess OpCapability StorageInputOutput16 - %15 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size OpEntryPoint Fragment %fragment_main "fragment_main" @@ -36,37 +35,36 @@ %void = OpTypeVoid %9 = OpTypeFunction %void %half = OpTypeFloat 16 -%half_0x1p_0 = OpConstant %half 0x1p+0 +%half_0x1_ca8p_5 = OpConstant %half 0x1.ca8p+5 %_ptr_Function_half = OpTypePointer Function %half - %19 = OpConstantNull %half - %20 = OpTypeFunction %v4float + %17 = OpConstantNull %half + %18 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %degrees_5e9805 = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_half Function %19 - %13 = OpExtInst %half %15 Degrees %half_0x1p_0 - OpStore %res %13 + %res = OpVariable %_ptr_Function_half Function %17 + OpStore %res %half_0x1_ca8p_5 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %20 - %22 = OpLabel - %23 = OpFunctionCall %void %degrees_5e9805 +%vertex_main_inner = OpFunction %v4float None %18 + %20 = OpLabel + %21 = OpFunctionCall %void %degrees_5e9805 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %25 = OpLabel - %26 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %26 + %23 = OpLabel + %24 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %24 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %29 = OpLabel - %30 = OpFunctionCall %void %degrees_5e9805 + %27 = OpLabel + %28 = OpFunctionCall %void %degrees_5e9805 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %32 = OpLabel - %33 = OpFunctionCall %void %degrees_5e9805 + %30 = OpLabel + %31 = OpFunctionCall %void %degrees_5e9805 OpReturn OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/degrees/810467.wgsl b/test/tint/builtins/gen/literal/degrees/810467.wgsl new file mode 100644 index 0000000..f3a288e --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/810467.wgsl
@@ -0,0 +1,43 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn degrees(vec<2, fa>) -> vec<2, fa> +fn degrees_810467() { + var res = degrees(vec2(1.)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + degrees_810467(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + degrees_810467(); +} + +@compute @workgroup_size(1) +fn compute_main() { + degrees_810467(); +}
diff --git a/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000..eb0415d --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.dxc.hlsl
@@ -0,0 +1,30 @@ +void degrees_810467() { + float2 res = (57.295780182f).xx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + degrees_810467(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + degrees_810467(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + degrees_810467(); + return; +}
diff --git a/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000..eb0415d --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.fxc.hlsl
@@ -0,0 +1,30 @@ +void degrees_810467() { + float2 res = (57.295780182f).xx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + degrees_810467(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + degrees_810467(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + degrees_810467(); + return; +}
diff --git a/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.glsl new file mode 100644 index 0000000..cee6770 --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.glsl
@@ -0,0 +1,49 @@ +#version 310 es + +void degrees_810467() { + vec2 res = vec2(57.295780182f); +} + +vec4 vertex_main() { + degrees_810467(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void degrees_810467() { + vec2 res = vec2(57.295780182f); +} + +void fragment_main() { + degrees_810467(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void degrees_810467() { + vec2 res = vec2(57.295780182f); +} + +void compute_main() { + degrees_810467(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +}
diff --git a/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.msl b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.msl new file mode 100644 index 0000000..26fdf6d --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.msl
@@ -0,0 +1,33 @@ +#include <metal_stdlib> + +using namespace metal; +void degrees_810467() { + float2 res = float2(57.295780182f); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + degrees_810467(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + degrees_810467(); + return; +} + +kernel void compute_main() { + degrees_810467(); + return; +} +
diff --git a/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.spvasm new file mode 100644 index 0000000..2f16f05 --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.spvasm
@@ -0,0 +1,67 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 33 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %degrees_810467 "degrees_810467" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %v2float = OpTypeVector %float 2 +%float_57_2957802 = OpConstant %float 57.2957802 + %15 = OpConstantComposite %v2float %float_57_2957802 %float_57_2957802 +%_ptr_Function_v2float = OpTypePointer Function %v2float + %18 = OpConstantNull %v2float + %19 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%degrees_810467 = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v2float Function %18 + OpStore %res %15 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %19 + %21 = OpLabel + %22 = OpFunctionCall %void %degrees_810467 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %24 = OpLabel + %25 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %25 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %28 = OpLabel + %29 = OpFunctionCall %void %degrees_810467 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %31 = OpLabel + %32 = OpFunctionCall %void %degrees_810467 + OpReturn + OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.wgsl new file mode 100644 index 0000000..f485b44 --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.wgsl
@@ -0,0 +1,19 @@ +fn degrees_810467() { + var res = degrees(vec2(1.0)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + degrees_810467(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + degrees_810467(); +} + +@compute @workgroup_size(1) +fn compute_main() { + degrees_810467(); +}
diff --git a/test/tint/builtins/gen/literal/degrees/c0880c.wgsl b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl new file mode 100644 index 0000000..168ddab --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl
@@ -0,0 +1,43 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn degrees(vec<3, fa>) -> vec<3, fa> +fn degrees_c0880c() { + var res = degrees(vec3(1.)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + degrees_c0880c(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + degrees_c0880c(); +} + +@compute @workgroup_size(1) +fn compute_main() { + degrees_c0880c(); +}
diff --git a/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000..78013a9 --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.dxc.hlsl
@@ -0,0 +1,30 @@ +void degrees_c0880c() { + float3 res = (57.295780182f).xxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + degrees_c0880c(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + degrees_c0880c(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + degrees_c0880c(); + return; +}
diff --git a/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000..78013a9 --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.fxc.hlsl
@@ -0,0 +1,30 @@ +void degrees_c0880c() { + float3 res = (57.295780182f).xxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + degrees_c0880c(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + degrees_c0880c(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + degrees_c0880c(); + return; +}
diff --git a/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.glsl new file mode 100644 index 0000000..ad03188 --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.glsl
@@ -0,0 +1,49 @@ +#version 310 es + +void degrees_c0880c() { + vec3 res = vec3(57.295780182f); +} + +vec4 vertex_main() { + degrees_c0880c(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void degrees_c0880c() { + vec3 res = vec3(57.295780182f); +} + +void fragment_main() { + degrees_c0880c(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void degrees_c0880c() { + vec3 res = vec3(57.295780182f); +} + +void compute_main() { + degrees_c0880c(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +}
diff --git a/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.msl b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.msl new file mode 100644 index 0000000..4b019e9 --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.msl
@@ -0,0 +1,33 @@ +#include <metal_stdlib> + +using namespace metal; +void degrees_c0880c() { + float3 res = float3(57.295780182f); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + degrees_c0880c(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + degrees_c0880c(); + return; +} + +kernel void compute_main() { + degrees_c0880c(); + return; +} +
diff --git a/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.spvasm new file mode 100644 index 0000000..7fe5c73 --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.spvasm
@@ -0,0 +1,67 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 33 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %degrees_c0880c "degrees_c0880c" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %v3float = OpTypeVector %float 3 +%float_57_2957802 = OpConstant %float 57.2957802 + %15 = OpConstantComposite %v3float %float_57_2957802 %float_57_2957802 %float_57_2957802 +%_ptr_Function_v3float = OpTypePointer Function %v3float + %18 = OpConstantNull %v3float + %19 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%degrees_c0880c = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v3float Function %18 + OpStore %res %15 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %19 + %21 = OpLabel + %22 = OpFunctionCall %void %degrees_c0880c + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %24 = OpLabel + %25 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %25 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %28 = OpLabel + %29 = OpFunctionCall %void %degrees_c0880c + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %31 = OpLabel + %32 = OpFunctionCall %void %degrees_c0880c + OpReturn + OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.wgsl new file mode 100644 index 0000000..56b77be --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.wgsl
@@ -0,0 +1,19 @@ +fn degrees_c0880c() { + var res = degrees(vec3(1.0)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + degrees_c0880c(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + degrees_c0880c(); +} + +@compute @workgroup_size(1) +fn compute_main() { + degrees_c0880c(); +}
diff --git a/test/tint/builtins/gen/literal/degrees/d43a49.wgsl b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl new file mode 100644 index 0000000..591aa5e --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl
@@ -0,0 +1,43 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn degrees(vec<4, fa>) -> vec<4, fa> +fn degrees_d43a49() { + var res = degrees(vec4(1.)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + degrees_d43a49(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + degrees_d43a49(); +} + +@compute @workgroup_size(1) +fn compute_main() { + degrees_d43a49(); +}
diff --git a/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000..0ea5685 --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.dxc.hlsl
@@ -0,0 +1,30 @@ +void degrees_d43a49() { + float4 res = (57.295780182f).xxxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + degrees_d43a49(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + degrees_d43a49(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + degrees_d43a49(); + return; +}
diff --git a/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000..0ea5685 --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.fxc.hlsl
@@ -0,0 +1,30 @@ +void degrees_d43a49() { + float4 res = (57.295780182f).xxxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + degrees_d43a49(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + degrees_d43a49(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + degrees_d43a49(); + return; +}
diff --git a/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.glsl new file mode 100644 index 0000000..893f790 --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.glsl
@@ -0,0 +1,49 @@ +#version 310 es + +void degrees_d43a49() { + vec4 res = vec4(57.295780182f); +} + +vec4 vertex_main() { + degrees_d43a49(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void degrees_d43a49() { + vec4 res = vec4(57.295780182f); +} + +void fragment_main() { + degrees_d43a49(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void degrees_d43a49() { + vec4 res = vec4(57.295780182f); +} + +void compute_main() { + degrees_d43a49(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +}
diff --git a/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.msl b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.msl new file mode 100644 index 0000000..adddeb0 --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.msl
@@ -0,0 +1,33 @@ +#include <metal_stdlib> + +using namespace metal; +void degrees_d43a49() { + float4 res = float4(57.295780182f); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + degrees_d43a49(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + degrees_d43a49(); + return; +} + +kernel void compute_main() { + degrees_d43a49(); + return; +} +
diff --git a/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.spvasm new file mode 100644 index 0000000..d0ca406 --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.spvasm
@@ -0,0 +1,65 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 31 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %degrees_d43a49 "degrees_d43a49" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void +%float_57_2957802 = OpConstant %float 57.2957802 + %14 = OpConstantComposite %v4float %float_57_2957802 %float_57_2957802 %float_57_2957802 %float_57_2957802 +%_ptr_Function_v4float = OpTypePointer Function %v4float + %17 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%degrees_d43a49 = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v4float Function %5 + OpStore %res %14 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %17 + %19 = OpLabel + %20 = OpFunctionCall %void %degrees_d43a49 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %22 = OpLabel + %23 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %23 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %26 = OpLabel + %27 = OpFunctionCall %void %degrees_d43a49 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %29 = OpLabel + %30 = OpFunctionCall %void %degrees_d43a49 + OpReturn + OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.wgsl new file mode 100644 index 0000000..5d52734 --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.wgsl
@@ -0,0 +1,19 @@ +fn degrees_d43a49() { + var res = degrees(vec4(1.0)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + degrees_d43a49(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + degrees_d43a49(); +} + +@compute @workgroup_size(1) +fn compute_main() { + degrees_d43a49(); +}
diff --git a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.dxc.hlsl index b54ef76..e79a618 100644 --- a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.dxc.hlsl
@@ -1,9 +1,5 @@ -vector<float16_t, 3> tint_degrees(vector<float16_t, 3> param_0) { - return param_0 * 57.295779513082322865; -} - void degrees_dfe8f4() { - vector<float16_t, 3> res = tint_degrees((float16_t(1.0h)).xxx); + vector<float16_t, 3> res = (float16_t(57.3125h)).xxx; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.glsl index 576497a..44e7b2a 100644 --- a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.glsl
@@ -1,13 +1,8 @@ #version 310 es #extension GL_AMD_gpu_shader_half_float : require -f16vec3 tint_degrees(f16vec3 param_0) { - return param_0 * 57.295779513082322865hf; -} - - void degrees_dfe8f4() { - f16vec3 res = tint_degrees(f16vec3(1.0hf)); + f16vec3 res = f16vec3(57.3125hf); } vec4 vertex_main() { @@ -27,13 +22,8 @@ #extension GL_AMD_gpu_shader_half_float : require precision mediump float; -f16vec3 tint_degrees(f16vec3 param_0) { - return param_0 * 57.295779513082322865hf; -} - - void degrees_dfe8f4() { - f16vec3 res = tint_degrees(f16vec3(1.0hf)); + f16vec3 res = f16vec3(57.3125hf); } void fragment_main() { @@ -47,13 +37,8 @@ #version 310 es #extension GL_AMD_gpu_shader_half_float : require -f16vec3 tint_degrees(f16vec3 param_0) { - return param_0 * 57.295779513082322865hf; -} - - void degrees_dfe8f4() { - f16vec3 res = tint_degrees(f16vec3(1.0hf)); + f16vec3 res = f16vec3(57.3125hf); } void compute_main() {
diff --git a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.msl b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.msl index 419df21..581a6af 100644 --- a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.msl
@@ -1,13 +1,8 @@ #include <metal_stdlib> using namespace metal; - -half3 tint_degrees(half3 param_0) { - return param_0 * 57.295779513082322865; -} - void degrees_dfe8f4() { - half3 res = tint_degrees(half3(1.0h)); + half3 res = half3(57.3125h); } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.spvasm index ca76456..449a8ea 100644 --- a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.spvasm
@@ -1,14 +1,13 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 36 +; Bound: 34 ; Schema: 0 OpCapability Shader OpCapability Float16 OpCapability UniformAndStorageBuffer16BitAccess OpCapability StorageBuffer16BitAccess OpCapability StorageInputOutput16 - %16 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size OpEntryPoint Fragment %fragment_main "fragment_main" @@ -37,38 +36,37 @@ %9 = OpTypeFunction %void %half = OpTypeFloat 16 %v3half = OpTypeVector %half 3 -%half_0x1p_0 = OpConstant %half 0x1p+0 - %18 = OpConstantComposite %v3half %half_0x1p_0 %half_0x1p_0 %half_0x1p_0 +%half_0x1_ca8p_5 = OpConstant %half 0x1.ca8p+5 + %16 = OpConstantComposite %v3half %half_0x1_ca8p_5 %half_0x1_ca8p_5 %half_0x1_ca8p_5 %_ptr_Function_v3half = OpTypePointer Function %v3half - %21 = OpConstantNull %v3half - %22 = OpTypeFunction %v4float + %19 = OpConstantNull %v3half + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %degrees_dfe8f4 = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v3half Function %21 - %13 = OpExtInst %v3half %16 Degrees %18 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v3half Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %22 - %24 = OpLabel - %25 = OpFunctionCall %void %degrees_dfe8f4 +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %degrees_dfe8f4 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %27 = OpLabel - %28 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %28 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %31 = OpLabel - %32 = OpFunctionCall %void %degrees_dfe8f4 + %29 = OpLabel + %30 = OpFunctionCall %void %degrees_dfe8f4 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %34 = OpLabel - %35 = OpFunctionCall %void %degrees_dfe8f4 + %32 = OpLabel + %33 = OpFunctionCall %void %degrees_dfe8f4 OpReturn OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.dxc.hlsl index 68de11a..336be91 100644 --- a/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.dxc.hlsl
@@ -1,9 +1,5 @@ -vector<float16_t, 2> tint_degrees(vector<float16_t, 2> param_0) { - return param_0 * 57.295779513082322865; -} - void degrees_f59715() { - vector<float16_t, 2> res = tint_degrees((float16_t(1.0h)).xx); + vector<float16_t, 2> res = (float16_t(57.3125h)).xx; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.glsl index 7a7c686..a3e8bf9 100644 --- a/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.glsl
@@ -1,13 +1,8 @@ #version 310 es #extension GL_AMD_gpu_shader_half_float : require -f16vec2 tint_degrees(f16vec2 param_0) { - return param_0 * 57.295779513082322865hf; -} - - void degrees_f59715() { - f16vec2 res = tint_degrees(f16vec2(1.0hf)); + f16vec2 res = f16vec2(57.3125hf); } vec4 vertex_main() { @@ -27,13 +22,8 @@ #extension GL_AMD_gpu_shader_half_float : require precision mediump float; -f16vec2 tint_degrees(f16vec2 param_0) { - return param_0 * 57.295779513082322865hf; -} - - void degrees_f59715() { - f16vec2 res = tint_degrees(f16vec2(1.0hf)); + f16vec2 res = f16vec2(57.3125hf); } void fragment_main() { @@ -47,13 +37,8 @@ #version 310 es #extension GL_AMD_gpu_shader_half_float : require -f16vec2 tint_degrees(f16vec2 param_0) { - return param_0 * 57.295779513082322865hf; -} - - void degrees_f59715() { - f16vec2 res = tint_degrees(f16vec2(1.0hf)); + f16vec2 res = f16vec2(57.3125hf); } void compute_main() {
diff --git a/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.msl b/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.msl index af8aa30..62fd426 100644 --- a/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.msl
@@ -1,13 +1,8 @@ #include <metal_stdlib> using namespace metal; - -half2 tint_degrees(half2 param_0) { - return param_0 * 57.295779513082322865; -} - void degrees_f59715() { - half2 res = tint_degrees(half2(1.0h)); + half2 res = half2(57.3125h); } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.spvasm index ca83372..ba71ed3 100644 --- a/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.spvasm
@@ -1,14 +1,13 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 36 +; Bound: 34 ; Schema: 0 OpCapability Shader OpCapability Float16 OpCapability UniformAndStorageBuffer16BitAccess OpCapability StorageBuffer16BitAccess OpCapability StorageInputOutput16 - %16 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size OpEntryPoint Fragment %fragment_main "fragment_main" @@ -37,38 +36,37 @@ %9 = OpTypeFunction %void %half = OpTypeFloat 16 %v2half = OpTypeVector %half 2 -%half_0x1p_0 = OpConstant %half 0x1p+0 - %18 = OpConstantComposite %v2half %half_0x1p_0 %half_0x1p_0 +%half_0x1_ca8p_5 = OpConstant %half 0x1.ca8p+5 + %16 = OpConstantComposite %v2half %half_0x1_ca8p_5 %half_0x1_ca8p_5 %_ptr_Function_v2half = OpTypePointer Function %v2half - %21 = OpConstantNull %v2half - %22 = OpTypeFunction %v4float + %19 = OpConstantNull %v2half + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %degrees_f59715 = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v2half Function %21 - %13 = OpExtInst %v2half %16 Degrees %18 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v2half Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %22 - %24 = OpLabel - %25 = OpFunctionCall %void %degrees_f59715 +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %degrees_f59715 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %27 = OpLabel - %28 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %28 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %31 = OpLabel - %32 = OpFunctionCall %void %degrees_f59715 + %29 = OpLabel + %30 = OpFunctionCall %void %degrees_f59715 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %34 = OpLabel - %35 = OpFunctionCall %void %degrees_f59715 + %32 = OpLabel + %33 = OpFunctionCall %void %degrees_f59715 OpReturn OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl new file mode 100644 index 0000000..f5135de --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl
@@ -0,0 +1,43 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn degrees(fa) -> fa +fn degrees_fafa7e() { + var res = degrees(1.); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + degrees_fafa7e(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + degrees_fafa7e(); +} + +@compute @workgroup_size(1) +fn compute_main() { + degrees_fafa7e(); +}
diff --git a/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000..a11be10 --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.dxc.hlsl
@@ -0,0 +1,30 @@ +void degrees_fafa7e() { + float res = 57.295780182f; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + degrees_fafa7e(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + degrees_fafa7e(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + degrees_fafa7e(); + return; +}
diff --git a/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000..a11be10 --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.fxc.hlsl
@@ -0,0 +1,30 @@ +void degrees_fafa7e() { + float res = 57.295780182f; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + degrees_fafa7e(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + degrees_fafa7e(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + degrees_fafa7e(); + return; +}
diff --git a/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.glsl new file mode 100644 index 0000000..4572eb3 --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.glsl
@@ -0,0 +1,49 @@ +#version 310 es + +void degrees_fafa7e() { + float res = 57.295780182f; +} + +vec4 vertex_main() { + degrees_fafa7e(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void degrees_fafa7e() { + float res = 57.295780182f; +} + +void fragment_main() { + degrees_fafa7e(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void degrees_fafa7e() { + float res = 57.295780182f; +} + +void compute_main() { + degrees_fafa7e(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +}
diff --git a/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.msl b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.msl new file mode 100644 index 0000000..770b0ab --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.msl
@@ -0,0 +1,33 @@ +#include <metal_stdlib> + +using namespace metal; +void degrees_fafa7e() { + float res = 57.295780182f; +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + degrees_fafa7e(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + degrees_fafa7e(); + return; +} + +kernel void compute_main() { + degrees_fafa7e(); + return; +} +
diff --git a/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.spvasm new file mode 100644 index 0000000..e3e9810 --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.spvasm
@@ -0,0 +1,64 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 30 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %degrees_fafa7e "degrees_fafa7e" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void +%float_57_2957802 = OpConstant %float 57.2957802 +%_ptr_Function_float = OpTypePointer Function %float + %16 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%degrees_fafa7e = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_float Function %8 + OpStore %res %float_57_2957802 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %16 + %18 = OpLabel + %19 = OpFunctionCall %void %degrees_fafa7e + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %21 = OpLabel + %22 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %22 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %25 = OpLabel + %26 = OpFunctionCall %void %degrees_fafa7e + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %28 = OpLabel + %29 = OpFunctionCall %void %degrees_fafa7e + OpReturn + OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.wgsl new file mode 100644 index 0000000..572f1d6 --- /dev/null +++ b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.wgsl
@@ -0,0 +1,19 @@ +fn degrees_fafa7e() { + var res = degrees(1.0); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + degrees_fafa7e(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + degrees_fafa7e(); +} + +@compute @workgroup_size(1) +fn compute_main() { + degrees_fafa7e(); +}
diff --git a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.dxc.hlsl index d1adfed..9fda1fb 100644 --- a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.dxc.hlsl
@@ -1,9 +1,5 @@ -float4 tint_radians(float4 param_0) { - return param_0 * 0.017453292519943295474; -} - void radians_09b7fc() { - float4 res = tint_radians((1.0f).xxxx); + float4 res = (0.017453292f).xxxx; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.fxc.hlsl index d1adfed..9fda1fb 100644 --- a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.fxc.hlsl
@@ -1,9 +1,5 @@ -float4 tint_radians(float4 param_0) { - return param_0 * 0.017453292519943295474; -} - void radians_09b7fc() { - float4 res = tint_radians((1.0f).xxxx); + float4 res = (0.017453292f).xxxx; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.glsl index a0c4475..4a6d169 100644 --- a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.glsl
@@ -1,12 +1,7 @@ #version 310 es -vec4 tint_radians(vec4 param_0) { - return param_0 * 0.017453292519943295474f; -} - - void radians_09b7fc() { - vec4 res = tint_radians(vec4(1.0f)); + vec4 res = vec4(0.017453292f); } vec4 vertex_main() { @@ -25,13 +20,8 @@ #version 310 es precision mediump float; -vec4 tint_radians(vec4 param_0) { - return param_0 * 0.017453292519943295474f; -} - - void radians_09b7fc() { - vec4 res = tint_radians(vec4(1.0f)); + vec4 res = vec4(0.017453292f); } void fragment_main() { @@ -44,13 +34,8 @@ } #version 310 es -vec4 tint_radians(vec4 param_0) { - return param_0 * 0.017453292519943295474f; -} - - void radians_09b7fc() { - vec4 res = tint_radians(vec4(1.0f)); + vec4 res = vec4(0.017453292f); } void compute_main() {
diff --git a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.msl index 59ac3a3..5b7469d 100644 --- a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.msl
@@ -1,13 +1,8 @@ #include <metal_stdlib> using namespace metal; - -float4 tint_radians(float4 param_0) { - return param_0 * 0.017453292519943295474; -} - void radians_09b7fc() { - float4 res = tint_radians(float4(1.0f)); + float4 res = float4(0.017453292f); } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.spvasm index ddeea5d..51235ca 100644 --- a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.spvasm
@@ -1,10 +1,9 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 32 +; Bound: 31 ; Schema: 0 OpCapability Shader - %14 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size OpEntryPoint Fragment %fragment_main "fragment_main" @@ -31,36 +30,36 @@ %vertex_point_size = OpVariable %_ptr_Output_float Output %8 %void = OpTypeVoid %9 = OpTypeFunction %void - %float_1 = OpConstant %float 1 - %16 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 +%float_0_0174532924 = OpConstant %float 0.0174532924 + %14 = OpConstantComposite %v4float %float_0_0174532924 %float_0_0174532924 %float_0_0174532924 %float_0_0174532924 %_ptr_Function_v4float = OpTypePointer Function %v4float - %19 = OpTypeFunction %v4float + %17 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 %radians_09b7fc = OpFunction %void None %9 %12 = OpLabel %res = OpVariable %_ptr_Function_v4float Function %5 - %13 = OpExtInst %v4float %14 Radians %16 - OpStore %res %13 + OpStore %res %14 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %19 - %21 = OpLabel - %22 = OpFunctionCall %void %radians_09b7fc +%vertex_main_inner = OpFunction %v4float None %17 + %19 = OpLabel + %20 = OpFunctionCall %void %radians_09b7fc OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %24 = OpLabel - %25 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %25 + %22 = OpLabel + %23 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %23 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %27 = OpLabel - %28 = OpFunctionCall %void %radians_09b7fc + %26 = OpLabel + %27 = OpFunctionCall %void %radians_09b7fc OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %30 = OpLabel - %31 = OpFunctionCall %void %radians_09b7fc + %29 = OpLabel + %30 = OpFunctionCall %void %radians_09b7fc OpReturn OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.dxc.hlsl index fb9a879..0421e6d 100644 --- a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.dxc.hlsl
@@ -1,9 +1,5 @@ -float16_t tint_radians(float16_t param_0) { - return param_0 * 0.017453292519943295474; -} - void radians_208fd9() { - float16_t res = tint_radians(float16_t(1.0h)); + float16_t res = float16_t(0.017440796h); } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.glsl index a48668c..efcf7aa 100644 --- a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.glsl
@@ -1,13 +1,8 @@ #version 310 es #extension GL_AMD_gpu_shader_half_float : require -float16_t tint_radians(float16_t param_0) { - return param_0 * 0.017453292519943295474hf; -} - - void radians_208fd9() { - float16_t res = tint_radians(1.0hf); + float16_t res = 0.017440796hf; } vec4 vertex_main() { @@ -27,13 +22,8 @@ #extension GL_AMD_gpu_shader_half_float : require precision mediump float; -float16_t tint_radians(float16_t param_0) { - return param_0 * 0.017453292519943295474hf; -} - - void radians_208fd9() { - float16_t res = tint_radians(1.0hf); + float16_t res = 0.017440796hf; } void fragment_main() { @@ -47,13 +37,8 @@ #version 310 es #extension GL_AMD_gpu_shader_half_float : require -float16_t tint_radians(float16_t param_0) { - return param_0 * 0.017453292519943295474hf; -} - - void radians_208fd9() { - float16_t res = tint_radians(1.0hf); + float16_t res = 0.017440796hf; } void compute_main() {
diff --git a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.msl index 72d93d6..93c1037 100644 --- a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.msl
@@ -1,13 +1,8 @@ #include <metal_stdlib> using namespace metal; - -half tint_radians(half param_0) { - return param_0 * 0.017453292519943295474; -} - void radians_208fd9() { - half res = tint_radians(1.0h); + half res = 0.017440796h; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.spvasm index e218859..0081055 100644 --- a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.spvasm
@@ -1,14 +1,13 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 34 +; Bound: 32 ; Schema: 0 OpCapability Shader OpCapability Float16 OpCapability UniformAndStorageBuffer16BitAccess OpCapability StorageBuffer16BitAccess OpCapability StorageInputOutput16 - %15 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size OpEntryPoint Fragment %fragment_main "fragment_main" @@ -36,37 +35,36 @@ %void = OpTypeVoid %9 = OpTypeFunction %void %half = OpTypeFloat 16 -%half_0x1p_0 = OpConstant %half 0x1p+0 +%half_0x1_1dcpn6 = OpConstant %half 0x1.1dcp-6 %_ptr_Function_half = OpTypePointer Function %half - %19 = OpConstantNull %half - %20 = OpTypeFunction %v4float + %17 = OpConstantNull %half + %18 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %radians_208fd9 = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_half Function %19 - %13 = OpExtInst %half %15 Radians %half_0x1p_0 - OpStore %res %13 + %res = OpVariable %_ptr_Function_half Function %17 + OpStore %res %half_0x1_1dcpn6 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %20 - %22 = OpLabel - %23 = OpFunctionCall %void %radians_208fd9 +%vertex_main_inner = OpFunction %v4float None %18 + %20 = OpLabel + %21 = OpFunctionCall %void %radians_208fd9 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %25 = OpLabel - %26 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %26 + %23 = OpLabel + %24 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %24 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %29 = OpLabel - %30 = OpFunctionCall %void %radians_208fd9 + %27 = OpLabel + %28 = OpFunctionCall %void %radians_208fd9 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %32 = OpLabel - %33 = OpFunctionCall %void %radians_208fd9 + %30 = OpLabel + %31 = OpFunctionCall %void %radians_208fd9 OpReturn OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/radians/379214.wgsl b/test/tint/builtins/gen/literal/radians/379214.wgsl new file mode 100644 index 0000000..273ddee --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/379214.wgsl
@@ -0,0 +1,43 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn radians(vec<3, fa>) -> vec<3, fa> +fn radians_379214() { + var res = radians(vec3(1.)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + radians_379214(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + radians_379214(); +} + +@compute @workgroup_size(1) +fn compute_main() { + radians_379214(); +}
diff --git a/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000..247db1d --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.dxc.hlsl
@@ -0,0 +1,30 @@ +void radians_379214() { + float3 res = (0.017453292f).xxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + radians_379214(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + radians_379214(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + radians_379214(); + return; +}
diff --git a/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000..247db1d --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.fxc.hlsl
@@ -0,0 +1,30 @@ +void radians_379214() { + float3 res = (0.017453292f).xxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + radians_379214(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + radians_379214(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + radians_379214(); + return; +}
diff --git a/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.glsl new file mode 100644 index 0000000..5593c1d --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.glsl
@@ -0,0 +1,49 @@ +#version 310 es + +void radians_379214() { + vec3 res = vec3(0.017453292f); +} + +vec4 vertex_main() { + radians_379214(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void radians_379214() { + vec3 res = vec3(0.017453292f); +} + +void fragment_main() { + radians_379214(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void radians_379214() { + vec3 res = vec3(0.017453292f); +} + +void compute_main() { + radians_379214(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +}
diff --git a/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.msl new file mode 100644 index 0000000..638763a --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.msl
@@ -0,0 +1,33 @@ +#include <metal_stdlib> + +using namespace metal; +void radians_379214() { + float3 res = float3(0.017453292f); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + radians_379214(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + radians_379214(); + return; +} + +kernel void compute_main() { + radians_379214(); + return; +} +
diff --git a/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.spvasm new file mode 100644 index 0000000..ec9360a --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.spvasm
@@ -0,0 +1,67 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 33 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %radians_379214 "radians_379214" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %v3float = OpTypeVector %float 3 +%float_0_0174532924 = OpConstant %float 0.0174532924 + %15 = OpConstantComposite %v3float %float_0_0174532924 %float_0_0174532924 %float_0_0174532924 +%_ptr_Function_v3float = OpTypePointer Function %v3float + %18 = OpConstantNull %v3float + %19 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%radians_379214 = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v3float Function %18 + OpStore %res %15 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %19 + %21 = OpLabel + %22 = OpFunctionCall %void %radians_379214 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %24 = OpLabel + %25 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %25 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %28 = OpLabel + %29 = OpFunctionCall %void %radians_379214 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %31 = OpLabel + %32 = OpFunctionCall %void %radians_379214 + OpReturn + OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.wgsl new file mode 100644 index 0000000..f0f98c8 --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.wgsl
@@ -0,0 +1,19 @@ +fn radians_379214() { + var res = radians(vec3(1.0)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + radians_379214(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + radians_379214(); +} + +@compute @workgroup_size(1) +fn compute_main() { + radians_379214(); +}
diff --git a/test/tint/builtins/gen/literal/radians/44a9f8.wgsl b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl new file mode 100644 index 0000000..cbb4f6d --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl
@@ -0,0 +1,43 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn radians(vec<2, fa>) -> vec<2, fa> +fn radians_44a9f8() { + var res = radians(vec2(1.)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + radians_44a9f8(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + radians_44a9f8(); +} + +@compute @workgroup_size(1) +fn compute_main() { + radians_44a9f8(); +}
diff --git a/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000..cb67c5d9 --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.dxc.hlsl
@@ -0,0 +1,30 @@ +void radians_44a9f8() { + float2 res = (0.017453292f).xx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + radians_44a9f8(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + radians_44a9f8(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + radians_44a9f8(); + return; +}
diff --git a/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000..cb67c5d9 --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.fxc.hlsl
@@ -0,0 +1,30 @@ +void radians_44a9f8() { + float2 res = (0.017453292f).xx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + radians_44a9f8(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + radians_44a9f8(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + radians_44a9f8(); + return; +}
diff --git a/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.glsl new file mode 100644 index 0000000..6caa601 --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.glsl
@@ -0,0 +1,49 @@ +#version 310 es + +void radians_44a9f8() { + vec2 res = vec2(0.017453292f); +} + +vec4 vertex_main() { + radians_44a9f8(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void radians_44a9f8() { + vec2 res = vec2(0.017453292f); +} + +void fragment_main() { + radians_44a9f8(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void radians_44a9f8() { + vec2 res = vec2(0.017453292f); +} + +void compute_main() { + radians_44a9f8(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +}
diff --git a/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.msl new file mode 100644 index 0000000..fea0149 --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.msl
@@ -0,0 +1,33 @@ +#include <metal_stdlib> + +using namespace metal; +void radians_44a9f8() { + float2 res = float2(0.017453292f); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + radians_44a9f8(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + radians_44a9f8(); + return; +} + +kernel void compute_main() { + radians_44a9f8(); + return; +} +
diff --git a/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.spvasm new file mode 100644 index 0000000..4e135fc --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.spvasm
@@ -0,0 +1,67 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 33 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %radians_44a9f8 "radians_44a9f8" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %v2float = OpTypeVector %float 2 +%float_0_0174532924 = OpConstant %float 0.0174532924 + %15 = OpConstantComposite %v2float %float_0_0174532924 %float_0_0174532924 +%_ptr_Function_v2float = OpTypePointer Function %v2float + %18 = OpConstantNull %v2float + %19 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%radians_44a9f8 = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v2float Function %18 + OpStore %res %15 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %19 + %21 = OpLabel + %22 = OpFunctionCall %void %radians_44a9f8 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %24 = OpLabel + %25 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %25 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %28 = OpLabel + %29 = OpFunctionCall %void %radians_44a9f8 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %31 = OpLabel + %32 = OpFunctionCall %void %radians_44a9f8 + OpReturn + OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.wgsl new file mode 100644 index 0000000..4d6455c --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.wgsl
@@ -0,0 +1,19 @@ +fn radians_44a9f8() { + var res = radians(vec2(1.0)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + radians_44a9f8(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + radians_44a9f8(); +} + +@compute @workgroup_size(1) +fn compute_main() { + radians_44a9f8(); +}
diff --git a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.dxc.hlsl index 3c88857..f107b59 100644 --- a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.dxc.hlsl
@@ -1,9 +1,5 @@ -vector<float16_t, 4> tint_radians(vector<float16_t, 4> param_0) { - return param_0 * 0.017453292519943295474; -} - void radians_44f20b() { - vector<float16_t, 4> res = tint_radians((float16_t(1.0h)).xxxx); + vector<float16_t, 4> res = (float16_t(0.017440796h)).xxxx; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.glsl index caa4ab8..ed65328 100644 --- a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.glsl
@@ -1,13 +1,8 @@ #version 310 es #extension GL_AMD_gpu_shader_half_float : require -f16vec4 tint_radians(f16vec4 param_0) { - return param_0 * 0.017453292519943295474hf; -} - - void radians_44f20b() { - f16vec4 res = tint_radians(f16vec4(1.0hf)); + f16vec4 res = f16vec4(0.017440796hf); } vec4 vertex_main() { @@ -27,13 +22,8 @@ #extension GL_AMD_gpu_shader_half_float : require precision mediump float; -f16vec4 tint_radians(f16vec4 param_0) { - return param_0 * 0.017453292519943295474hf; -} - - void radians_44f20b() { - f16vec4 res = tint_radians(f16vec4(1.0hf)); + f16vec4 res = f16vec4(0.017440796hf); } void fragment_main() { @@ -47,13 +37,8 @@ #version 310 es #extension GL_AMD_gpu_shader_half_float : require -f16vec4 tint_radians(f16vec4 param_0) { - return param_0 * 0.017453292519943295474hf; -} - - void radians_44f20b() { - f16vec4 res = tint_radians(f16vec4(1.0hf)); + f16vec4 res = f16vec4(0.017440796hf); } void compute_main() {
diff --git a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.msl index 0f7b12f..d279cb3 100644 --- a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.msl
@@ -1,13 +1,8 @@ #include <metal_stdlib> using namespace metal; - -half4 tint_radians(half4 param_0) { - return param_0 * 0.017453292519943295474; -} - void radians_44f20b() { - half4 res = tint_radians(half4(1.0h)); + half4 res = half4(0.017440796h); } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.spvasm index 993e544..7a543a4 100644 --- a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.spvasm
@@ -1,14 +1,13 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 36 +; Bound: 34 ; Schema: 0 OpCapability Shader OpCapability Float16 OpCapability UniformAndStorageBuffer16BitAccess OpCapability StorageBuffer16BitAccess OpCapability StorageInputOutput16 - %16 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size OpEntryPoint Fragment %fragment_main "fragment_main" @@ -37,38 +36,37 @@ %9 = OpTypeFunction %void %half = OpTypeFloat 16 %v4half = OpTypeVector %half 4 -%half_0x1p_0 = OpConstant %half 0x1p+0 - %18 = OpConstantComposite %v4half %half_0x1p_0 %half_0x1p_0 %half_0x1p_0 %half_0x1p_0 +%half_0x1_1dcpn6 = OpConstant %half 0x1.1dcp-6 + %16 = OpConstantComposite %v4half %half_0x1_1dcpn6 %half_0x1_1dcpn6 %half_0x1_1dcpn6 %half_0x1_1dcpn6 %_ptr_Function_v4half = OpTypePointer Function %v4half - %21 = OpConstantNull %v4half - %22 = OpTypeFunction %v4float + %19 = OpConstantNull %v4half + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %radians_44f20b = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v4half Function %21 - %13 = OpExtInst %v4half %16 Radians %18 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v4half Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %22 - %24 = OpLabel - %25 = OpFunctionCall %void %radians_44f20b +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %radians_44f20b OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %27 = OpLabel - %28 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %28 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %31 = OpLabel - %32 = OpFunctionCall %void %radians_44f20b + %29 = OpLabel + %30 = OpFunctionCall %void %radians_44f20b OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %34 = OpLabel - %35 = OpFunctionCall %void %radians_44f20b + %32 = OpLabel + %33 = OpFunctionCall %void %radians_44f20b OpReturn OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/radians/524a91.wgsl b/test/tint/builtins/gen/literal/radians/524a91.wgsl new file mode 100644 index 0000000..42d2fad --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/524a91.wgsl
@@ -0,0 +1,43 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn radians(vec<4, fa>) -> vec<4, fa> +fn radians_524a91() { + var res = radians(vec4(1.)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + radians_524a91(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + radians_524a91(); +} + +@compute @workgroup_size(1) +fn compute_main() { + radians_524a91(); +}
diff --git a/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000..b3e2192 --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.dxc.hlsl
@@ -0,0 +1,30 @@ +void radians_524a91() { + float4 res = (0.017453292f).xxxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + radians_524a91(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + radians_524a91(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + radians_524a91(); + return; +}
diff --git a/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000..b3e2192 --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.fxc.hlsl
@@ -0,0 +1,30 @@ +void radians_524a91() { + float4 res = (0.017453292f).xxxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + radians_524a91(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + radians_524a91(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + radians_524a91(); + return; +}
diff --git a/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.glsl new file mode 100644 index 0000000..fd1508e --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.glsl
@@ -0,0 +1,49 @@ +#version 310 es + +void radians_524a91() { + vec4 res = vec4(0.017453292f); +} + +vec4 vertex_main() { + radians_524a91(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void radians_524a91() { + vec4 res = vec4(0.017453292f); +} + +void fragment_main() { + radians_524a91(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void radians_524a91() { + vec4 res = vec4(0.017453292f); +} + +void compute_main() { + radians_524a91(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +}
diff --git a/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.msl new file mode 100644 index 0000000..fa539e0 --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.msl
@@ -0,0 +1,33 @@ +#include <metal_stdlib> + +using namespace metal; +void radians_524a91() { + float4 res = float4(0.017453292f); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + radians_524a91(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + radians_524a91(); + return; +} + +kernel void compute_main() { + radians_524a91(); + return; +} +
diff --git a/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.spvasm new file mode 100644 index 0000000..a9c1edf --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.spvasm
@@ -0,0 +1,65 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 31 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %radians_524a91 "radians_524a91" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void +%float_0_0174532924 = OpConstant %float 0.0174532924 + %14 = OpConstantComposite %v4float %float_0_0174532924 %float_0_0174532924 %float_0_0174532924 %float_0_0174532924 +%_ptr_Function_v4float = OpTypePointer Function %v4float + %17 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%radians_524a91 = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v4float Function %5 + OpStore %res %14 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %17 + %19 = OpLabel + %20 = OpFunctionCall %void %radians_524a91 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %22 = OpLabel + %23 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %23 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %26 = OpLabel + %27 = OpFunctionCall %void %radians_524a91 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %29 = OpLabel + %30 = OpFunctionCall %void %radians_524a91 + OpReturn + OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.wgsl new file mode 100644 index 0000000..7f69a56 --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.wgsl
@@ -0,0 +1,19 @@ +fn radians_524a91() { + var res = radians(vec4(1.0)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + radians_524a91(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + radians_524a91(); +} + +@compute @workgroup_size(1) +fn compute_main() { + radians_524a91(); +}
diff --git a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.dxc.hlsl index 66fd0bb..08ec6b4 100644 --- a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.dxc.hlsl
@@ -1,9 +1,5 @@ -float2 tint_radians(float2 param_0) { - return param_0 * 0.017453292519943295474; -} - void radians_61687a() { - float2 res = tint_radians((1.0f).xx); + float2 res = (0.017453292f).xx; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.fxc.hlsl index 66fd0bb..08ec6b4 100644 --- a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.fxc.hlsl
@@ -1,9 +1,5 @@ -float2 tint_radians(float2 param_0) { - return param_0 * 0.017453292519943295474; -} - void radians_61687a() { - float2 res = tint_radians((1.0f).xx); + float2 res = (0.017453292f).xx; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.glsl index 0810866..3ef50f3 100644 --- a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.glsl
@@ -1,12 +1,7 @@ #version 310 es -vec2 tint_radians(vec2 param_0) { - return param_0 * 0.017453292519943295474f; -} - - void radians_61687a() { - vec2 res = tint_radians(vec2(1.0f)); + vec2 res = vec2(0.017453292f); } vec4 vertex_main() { @@ -25,13 +20,8 @@ #version 310 es precision mediump float; -vec2 tint_radians(vec2 param_0) { - return param_0 * 0.017453292519943295474f; -} - - void radians_61687a() { - vec2 res = tint_radians(vec2(1.0f)); + vec2 res = vec2(0.017453292f); } void fragment_main() { @@ -44,13 +34,8 @@ } #version 310 es -vec2 tint_radians(vec2 param_0) { - return param_0 * 0.017453292519943295474f; -} - - void radians_61687a() { - vec2 res = tint_radians(vec2(1.0f)); + vec2 res = vec2(0.017453292f); } void compute_main() {
diff --git a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.msl index 2ce1861..8d8cf5c 100644 --- a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.msl
@@ -1,13 +1,8 @@ #include <metal_stdlib> using namespace metal; - -float2 tint_radians(float2 param_0) { - return param_0 * 0.017453292519943295474; -} - void radians_61687a() { - float2 res = tint_radians(float2(1.0f)); + float2 res = float2(0.017453292f); } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.spvasm index b9e7307..0dc12cf 100644 --- a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.spvasm
@@ -1,10 +1,9 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 34 +; Bound: 33 ; Schema: 0 OpCapability Shader - %15 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size OpEntryPoint Fragment %fragment_main "fragment_main" @@ -32,37 +31,37 @@ %void = OpTypeVoid %9 = OpTypeFunction %void %v2float = OpTypeVector %float 2 - %float_1 = OpConstant %float 1 - %17 = OpConstantComposite %v2float %float_1 %float_1 +%float_0_0174532924 = OpConstant %float 0.0174532924 + %15 = OpConstantComposite %v2float %float_0_0174532924 %float_0_0174532924 %_ptr_Function_v2float = OpTypePointer Function %v2float - %20 = OpConstantNull %v2float - %21 = OpTypeFunction %v4float + %18 = OpConstantNull %v2float + %19 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 %radians_61687a = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v2float Function %20 - %13 = OpExtInst %v2float %15 Radians %17 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v2float Function %18 + OpStore %res %15 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %21 - %23 = OpLabel - %24 = OpFunctionCall %void %radians_61687a +%vertex_main_inner = OpFunction %v4float None %19 + %21 = OpLabel + %22 = OpFunctionCall %void %radians_61687a OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %26 = OpLabel - %27 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %27 + %24 = OpLabel + %25 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %25 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %29 = OpLabel - %30 = OpFunctionCall %void %radians_61687a + %28 = OpLabel + %29 = OpFunctionCall %void %radians_61687a OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %32 = OpLabel - %33 = OpFunctionCall %void %radians_61687a + %31 = OpLabel + %32 = OpFunctionCall %void %radians_61687a OpReturn OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.dxc.hlsl index 9d7e818..5722b0d 100644 --- a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.dxc.hlsl
@@ -1,9 +1,5 @@ -float tint_radians(float param_0) { - return param_0 * 0.017453292519943295474; -} - void radians_6b0ff2() { - float res = tint_radians(1.0f); + float res = 0.017453292f; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.fxc.hlsl index 9d7e818..5722b0d 100644 --- a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.fxc.hlsl
@@ -1,9 +1,5 @@ -float tint_radians(float param_0) { - return param_0 * 0.017453292519943295474; -} - void radians_6b0ff2() { - float res = tint_radians(1.0f); + float res = 0.017453292f; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.glsl index b279215..ceb5f05 100644 --- a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.glsl
@@ -1,12 +1,7 @@ #version 310 es -float tint_radians(float param_0) { - return param_0 * 0.017453292519943295474f; -} - - void radians_6b0ff2() { - float res = tint_radians(1.0f); + float res = 0.017453292f; } vec4 vertex_main() { @@ -25,13 +20,8 @@ #version 310 es precision mediump float; -float tint_radians(float param_0) { - return param_0 * 0.017453292519943295474f; -} - - void radians_6b0ff2() { - float res = tint_radians(1.0f); + float res = 0.017453292f; } void fragment_main() { @@ -44,13 +34,8 @@ } #version 310 es -float tint_radians(float param_0) { - return param_0 * 0.017453292519943295474f; -} - - void radians_6b0ff2() { - float res = tint_radians(1.0f); + float res = 0.017453292f; } void compute_main() {
diff --git a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.msl index 074b46d..486252d 100644 --- a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.msl
@@ -1,13 +1,8 @@ #include <metal_stdlib> using namespace metal; - -float tint_radians(float param_0) { - return param_0 * 0.017453292519943295474; -} - void radians_6b0ff2() { - float res = tint_radians(1.0f); + float res = 0.017453292f; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.spvasm index 4f49a3f..f105b00 100644 --- a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.spvasm
@@ -1,10 +1,9 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 31 +; Bound: 30 ; Schema: 0 OpCapability Shader - %14 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size OpEntryPoint Fragment %fragment_main "fragment_main" @@ -31,35 +30,35 @@ %vertex_point_size = OpVariable %_ptr_Output_float Output %8 %void = OpTypeVoid %9 = OpTypeFunction %void - %float_1 = OpConstant %float 1 +%float_0_0174532924 = OpConstant %float 0.0174532924 %_ptr_Function_float = OpTypePointer Function %float - %18 = OpTypeFunction %v4float + %16 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 %radians_6b0ff2 = OpFunction %void None %9 %12 = OpLabel %res = OpVariable %_ptr_Function_float Function %8 - %13 = OpExtInst %float %14 Radians %float_1 - OpStore %res %13 + OpStore %res %float_0_0174532924 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %18 - %20 = OpLabel - %21 = OpFunctionCall %void %radians_6b0ff2 +%vertex_main_inner = OpFunction %v4float None %16 + %18 = OpLabel + %19 = OpFunctionCall %void %radians_6b0ff2 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %23 = OpLabel - %24 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %24 + %21 = OpLabel + %22 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %22 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %26 = OpLabel - %27 = OpFunctionCall %void %radians_6b0ff2 + %25 = OpLabel + %26 = OpFunctionCall %void %radians_6b0ff2 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %29 = OpLabel - %30 = OpFunctionCall %void %radians_6b0ff2 + %28 = OpLabel + %29 = OpFunctionCall %void %radians_6b0ff2 OpReturn OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.dxc.hlsl index 72427f3..680dffd 100644 --- a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.dxc.hlsl
@@ -1,9 +1,5 @@ -vector<float16_t, 3> tint_radians(vector<float16_t, 3> param_0) { - return param_0 * 0.017453292519943295474; -} - void radians_7ea4c7() { - vector<float16_t, 3> res = tint_radians((float16_t(1.0h)).xxx); + vector<float16_t, 3> res = (float16_t(0.017440796h)).xxx; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.glsl index 75c124c..44b3775 100644 --- a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.glsl
@@ -1,13 +1,8 @@ #version 310 es #extension GL_AMD_gpu_shader_half_float : require -f16vec3 tint_radians(f16vec3 param_0) { - return param_0 * 0.017453292519943295474hf; -} - - void radians_7ea4c7() { - f16vec3 res = tint_radians(f16vec3(1.0hf)); + f16vec3 res = f16vec3(0.017440796hf); } vec4 vertex_main() { @@ -27,13 +22,8 @@ #extension GL_AMD_gpu_shader_half_float : require precision mediump float; -f16vec3 tint_radians(f16vec3 param_0) { - return param_0 * 0.017453292519943295474hf; -} - - void radians_7ea4c7() { - f16vec3 res = tint_radians(f16vec3(1.0hf)); + f16vec3 res = f16vec3(0.017440796hf); } void fragment_main() { @@ -47,13 +37,8 @@ #version 310 es #extension GL_AMD_gpu_shader_half_float : require -f16vec3 tint_radians(f16vec3 param_0) { - return param_0 * 0.017453292519943295474hf; -} - - void radians_7ea4c7() { - f16vec3 res = tint_radians(f16vec3(1.0hf)); + f16vec3 res = f16vec3(0.017440796hf); } void compute_main() {
diff --git a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.msl index a8f0e1f..59edb2a 100644 --- a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.msl
@@ -1,13 +1,8 @@ #include <metal_stdlib> using namespace metal; - -half3 tint_radians(half3 param_0) { - return param_0 * 0.017453292519943295474; -} - void radians_7ea4c7() { - half3 res = tint_radians(half3(1.0h)); + half3 res = half3(0.017440796h); } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.spvasm index 3253f44..0d5b8b8 100644 --- a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.spvasm
@@ -1,14 +1,13 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 36 +; Bound: 34 ; Schema: 0 OpCapability Shader OpCapability Float16 OpCapability UniformAndStorageBuffer16BitAccess OpCapability StorageBuffer16BitAccess OpCapability StorageInputOutput16 - %16 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size OpEntryPoint Fragment %fragment_main "fragment_main" @@ -37,38 +36,37 @@ %9 = OpTypeFunction %void %half = OpTypeFloat 16 %v3half = OpTypeVector %half 3 -%half_0x1p_0 = OpConstant %half 0x1p+0 - %18 = OpConstantComposite %v3half %half_0x1p_0 %half_0x1p_0 %half_0x1p_0 +%half_0x1_1dcpn6 = OpConstant %half 0x1.1dcp-6 + %16 = OpConstantComposite %v3half %half_0x1_1dcpn6 %half_0x1_1dcpn6 %half_0x1_1dcpn6 %_ptr_Function_v3half = OpTypePointer Function %v3half - %21 = OpConstantNull %v3half - %22 = OpTypeFunction %v4float + %19 = OpConstantNull %v3half + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %radians_7ea4c7 = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v3half Function %21 - %13 = OpExtInst %v3half %16 Radians %18 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v3half Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %22 - %24 = OpLabel - %25 = OpFunctionCall %void %radians_7ea4c7 +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %radians_7ea4c7 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %27 = OpLabel - %28 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %28 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %31 = OpLabel - %32 = OpFunctionCall %void %radians_7ea4c7 + %29 = OpLabel + %30 = OpFunctionCall %void %radians_7ea4c7 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %34 = OpLabel - %35 = OpFunctionCall %void %radians_7ea4c7 + %32 = OpLabel + %33 = OpFunctionCall %void %radians_7ea4c7 OpReturn OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/radians/bff231.wgsl b/test/tint/builtins/gen/literal/radians/bff231.wgsl new file mode 100644 index 0000000..1b2cd48 --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/bff231.wgsl
@@ -0,0 +1,43 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn radians(fa) -> fa +fn radians_bff231() { + var res = radians(1.); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + radians_bff231(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + radians_bff231(); +} + +@compute @workgroup_size(1) +fn compute_main() { + radians_bff231(); +}
diff --git a/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000..cde7b14 --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.dxc.hlsl
@@ -0,0 +1,30 @@ +void radians_bff231() { + float res = 0.017453292f; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + radians_bff231(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + radians_bff231(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + radians_bff231(); + return; +}
diff --git a/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000..cde7b14 --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.fxc.hlsl
@@ -0,0 +1,30 @@ +void radians_bff231() { + float res = 0.017453292f; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + radians_bff231(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + radians_bff231(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + radians_bff231(); + return; +}
diff --git a/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.glsl new file mode 100644 index 0000000..a445da1 --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.glsl
@@ -0,0 +1,49 @@ +#version 310 es + +void radians_bff231() { + float res = 0.017453292f; +} + +vec4 vertex_main() { + radians_bff231(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void radians_bff231() { + float res = 0.017453292f; +} + +void fragment_main() { + radians_bff231(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void radians_bff231() { + float res = 0.017453292f; +} + +void compute_main() { + radians_bff231(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +}
diff --git a/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.msl new file mode 100644 index 0000000..ddd3b6e --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.msl
@@ -0,0 +1,33 @@ +#include <metal_stdlib> + +using namespace metal; +void radians_bff231() { + float res = 0.017453292f; +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + radians_bff231(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + radians_bff231(); + return; +} + +kernel void compute_main() { + radians_bff231(); + return; +} +
diff --git a/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.spvasm new file mode 100644 index 0000000..0a3316a --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.spvasm
@@ -0,0 +1,64 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 30 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %radians_bff231 "radians_bff231" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void +%float_0_0174532924 = OpConstant %float 0.0174532924 +%_ptr_Function_float = OpTypePointer Function %float + %16 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%radians_bff231 = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_float Function %8 + OpStore %res %float_0_0174532924 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %16 + %18 = OpLabel + %19 = OpFunctionCall %void %radians_bff231 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %21 = OpLabel + %22 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %22 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %25 = OpLabel + %26 = OpFunctionCall %void %radians_bff231 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %28 = OpLabel + %29 = OpFunctionCall %void %radians_bff231 + OpReturn + OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.wgsl new file mode 100644 index 0000000..c5e31e7 --- /dev/null +++ b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.wgsl
@@ -0,0 +1,19 @@ +fn radians_bff231() { + var res = radians(1.0); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + radians_bff231(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + radians_bff231(); +} + +@compute @workgroup_size(1) +fn compute_main() { + radians_bff231(); +}
diff --git a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.dxc.hlsl index 3ca2a80..92aca96 100644 --- a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.dxc.hlsl
@@ -1,9 +1,5 @@ -float3 tint_radians(float3 param_0) { - return param_0 * 0.017453292519943295474; -} - void radians_f96258() { - float3 res = tint_radians((1.0f).xxx); + float3 res = (0.017453292f).xxx; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.fxc.hlsl index 3ca2a80..92aca96 100644 --- a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.fxc.hlsl
@@ -1,9 +1,5 @@ -float3 tint_radians(float3 param_0) { - return param_0 * 0.017453292519943295474; -} - void radians_f96258() { - float3 res = tint_radians((1.0f).xxx); + float3 res = (0.017453292f).xxx; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.glsl index aaab3fe..7f15f68 100644 --- a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.glsl
@@ -1,12 +1,7 @@ #version 310 es -vec3 tint_radians(vec3 param_0) { - return param_0 * 0.017453292519943295474f; -} - - void radians_f96258() { - vec3 res = tint_radians(vec3(1.0f)); + vec3 res = vec3(0.017453292f); } vec4 vertex_main() { @@ -25,13 +20,8 @@ #version 310 es precision mediump float; -vec3 tint_radians(vec3 param_0) { - return param_0 * 0.017453292519943295474f; -} - - void radians_f96258() { - vec3 res = tint_radians(vec3(1.0f)); + vec3 res = vec3(0.017453292f); } void fragment_main() { @@ -44,13 +34,8 @@ } #version 310 es -vec3 tint_radians(vec3 param_0) { - return param_0 * 0.017453292519943295474f; -} - - void radians_f96258() { - vec3 res = tint_radians(vec3(1.0f)); + vec3 res = vec3(0.017453292f); } void compute_main() {
diff --git a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.msl index cae23f4..3ce84b4 100644 --- a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.msl
@@ -1,13 +1,8 @@ #include <metal_stdlib> using namespace metal; - -float3 tint_radians(float3 param_0) { - return param_0 * 0.017453292519943295474; -} - void radians_f96258() { - float3 res = tint_radians(float3(1.0f)); + float3 res = float3(0.017453292f); } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.spvasm index ef337f4..0178859 100644 --- a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.spvasm
@@ -1,10 +1,9 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 34 +; Bound: 33 ; Schema: 0 OpCapability Shader - %15 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size OpEntryPoint Fragment %fragment_main "fragment_main" @@ -32,37 +31,37 @@ %void = OpTypeVoid %9 = OpTypeFunction %void %v3float = OpTypeVector %float 3 - %float_1 = OpConstant %float 1 - %17 = OpConstantComposite %v3float %float_1 %float_1 %float_1 +%float_0_0174532924 = OpConstant %float 0.0174532924 + %15 = OpConstantComposite %v3float %float_0_0174532924 %float_0_0174532924 %float_0_0174532924 %_ptr_Function_v3float = OpTypePointer Function %v3float - %20 = OpConstantNull %v3float - %21 = OpTypeFunction %v4float + %18 = OpConstantNull %v3float + %19 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 %radians_f96258 = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v3float Function %20 - %13 = OpExtInst %v3float %15 Radians %17 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v3float Function %18 + OpStore %res %15 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %21 - %23 = OpLabel - %24 = OpFunctionCall %void %radians_f96258 +%vertex_main_inner = OpFunction %v4float None %19 + %21 = OpLabel + %22 = OpFunctionCall %void %radians_f96258 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %26 = OpLabel - %27 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %27 + %24 = OpLabel + %25 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %25 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %29 = OpLabel - %30 = OpFunctionCall %void %radians_f96258 + %28 = OpLabel + %29 = OpFunctionCall %void %radians_f96258 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %32 = OpLabel - %33 = OpFunctionCall %void %radians_f96258 + %31 = OpLabel + %32 = OpFunctionCall %void %radians_f96258 OpReturn OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.dxc.hlsl index 77ad4e4..4ed51a0 100644 --- a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.dxc.hlsl
@@ -1,9 +1,5 @@ -vector<float16_t, 2> tint_radians(vector<float16_t, 2> param_0) { - return param_0 * 0.017453292519943295474; -} - void radians_fbacf0() { - vector<float16_t, 2> res = tint_radians((float16_t(1.0h)).xx); + vector<float16_t, 2> res = (float16_t(0.017440796h)).xx; } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.glsl index 2d748f9..263666e 100644 --- a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.glsl
@@ -1,13 +1,8 @@ #version 310 es #extension GL_AMD_gpu_shader_half_float : require -f16vec2 tint_radians(f16vec2 param_0) { - return param_0 * 0.017453292519943295474hf; -} - - void radians_fbacf0() { - f16vec2 res = tint_radians(f16vec2(1.0hf)); + f16vec2 res = f16vec2(0.017440796hf); } vec4 vertex_main() { @@ -27,13 +22,8 @@ #extension GL_AMD_gpu_shader_half_float : require precision mediump float; -f16vec2 tint_radians(f16vec2 param_0) { - return param_0 * 0.017453292519943295474hf; -} - - void radians_fbacf0() { - f16vec2 res = tint_radians(f16vec2(1.0hf)); + f16vec2 res = f16vec2(0.017440796hf); } void fragment_main() { @@ -47,13 +37,8 @@ #version 310 es #extension GL_AMD_gpu_shader_half_float : require -f16vec2 tint_radians(f16vec2 param_0) { - return param_0 * 0.017453292519943295474hf; -} - - void radians_fbacf0() { - f16vec2 res = tint_radians(f16vec2(1.0hf)); + f16vec2 res = f16vec2(0.017440796hf); } void compute_main() {
diff --git a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.msl b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.msl index ca066a6..d462d32 100644 --- a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.msl
@@ -1,13 +1,8 @@ #include <metal_stdlib> using namespace metal; - -half2 tint_radians(half2 param_0) { - return param_0 * 0.017453292519943295474; -} - void radians_fbacf0() { - half2 res = tint_radians(half2(1.0h)); + half2 res = half2(0.017440796h); } struct tint_symbol {
diff --git a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.spvasm index 3fe420d..be6dede 100644 --- a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.spvasm
@@ -1,14 +1,13 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 36 +; Bound: 34 ; Schema: 0 OpCapability Shader OpCapability Float16 OpCapability UniformAndStorageBuffer16BitAccess OpCapability StorageBuffer16BitAccess OpCapability StorageInputOutput16 - %16 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size OpEntryPoint Fragment %fragment_main "fragment_main" @@ -37,38 +36,37 @@ %9 = OpTypeFunction %void %half = OpTypeFloat 16 %v2half = OpTypeVector %half 2 -%half_0x1p_0 = OpConstant %half 0x1p+0 - %18 = OpConstantComposite %v2half %half_0x1p_0 %half_0x1p_0 +%half_0x1_1dcpn6 = OpConstant %half 0x1.1dcp-6 + %16 = OpConstantComposite %v2half %half_0x1_1dcpn6 %half_0x1_1dcpn6 %_ptr_Function_v2half = OpTypePointer Function %v2half - %21 = OpConstantNull %v2half - %22 = OpTypeFunction %v4float + %19 = OpConstantNull %v2half + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %radians_fbacf0 = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v2half Function %21 - %13 = OpExtInst %v2half %16 Radians %18 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v2half Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %22 - %24 = OpLabel - %25 = OpFunctionCall %void %radians_fbacf0 +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %radians_fbacf0 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %27 = OpLabel - %28 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %28 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %31 = OpLabel - %32 = OpFunctionCall %void %radians_fbacf0 + %29 = OpLabel + %30 = OpFunctionCall %void %radians_fbacf0 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %34 = OpLabel - %35 = OpFunctionCall %void %radians_fbacf0 + %32 = OpLabel + %33 = OpFunctionCall %void %radians_fbacf0 OpReturn OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/degrees/810467.wgsl b/test/tint/builtins/gen/var/degrees/810467.wgsl new file mode 100644 index 0000000..96858d0 --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/810467.wgsl
@@ -0,0 +1,44 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn degrees(vec<2, fa>) -> vec<2, fa> +fn degrees_810467() { + const arg_0 = vec2(1.); + var res = degrees(arg_0); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + degrees_810467(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + degrees_810467(); +} + +@compute @workgroup_size(1) +fn compute_main() { + degrees_810467(); +}
diff --git a/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000..eb0415d --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.dxc.hlsl
@@ -0,0 +1,30 @@ +void degrees_810467() { + float2 res = (57.295780182f).xx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + degrees_810467(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + degrees_810467(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + degrees_810467(); + return; +}
diff --git a/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000..eb0415d --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.fxc.hlsl
@@ -0,0 +1,30 @@ +void degrees_810467() { + float2 res = (57.295780182f).xx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + degrees_810467(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + degrees_810467(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + degrees_810467(); + return; +}
diff --git a/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.glsl new file mode 100644 index 0000000..cee6770 --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.glsl
@@ -0,0 +1,49 @@ +#version 310 es + +void degrees_810467() { + vec2 res = vec2(57.295780182f); +} + +vec4 vertex_main() { + degrees_810467(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void degrees_810467() { + vec2 res = vec2(57.295780182f); +} + +void fragment_main() { + degrees_810467(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void degrees_810467() { + vec2 res = vec2(57.295780182f); +} + +void compute_main() { + degrees_810467(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +}
diff --git a/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.msl b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.msl new file mode 100644 index 0000000..26fdf6d --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.msl
@@ -0,0 +1,33 @@ +#include <metal_stdlib> + +using namespace metal; +void degrees_810467() { + float2 res = float2(57.295780182f); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + degrees_810467(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + degrees_810467(); + return; +} + +kernel void compute_main() { + degrees_810467(); + return; +} +
diff --git a/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.spvasm b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.spvasm new file mode 100644 index 0000000..2f16f05 --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.spvasm
@@ -0,0 +1,67 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 33 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %degrees_810467 "degrees_810467" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %v2float = OpTypeVector %float 2 +%float_57_2957802 = OpConstant %float 57.2957802 + %15 = OpConstantComposite %v2float %float_57_2957802 %float_57_2957802 +%_ptr_Function_v2float = OpTypePointer Function %v2float + %18 = OpConstantNull %v2float + %19 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%degrees_810467 = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v2float Function %18 + OpStore %res %15 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %19 + %21 = OpLabel + %22 = OpFunctionCall %void %degrees_810467 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %24 = OpLabel + %25 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %25 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %28 = OpLabel + %29 = OpFunctionCall %void %degrees_810467 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %31 = OpLabel + %32 = OpFunctionCall %void %degrees_810467 + OpReturn + OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.wgsl b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.wgsl new file mode 100644 index 0000000..a028b3d --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.wgsl
@@ -0,0 +1,20 @@ +fn degrees_810467() { + const arg_0 = vec2(1.0); + var res = degrees(arg_0); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + degrees_810467(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + degrees_810467(); +} + +@compute @workgroup_size(1) +fn compute_main() { + degrees_810467(); +}
diff --git a/test/tint/builtins/gen/var/degrees/c0880c.wgsl b/test/tint/builtins/gen/var/degrees/c0880c.wgsl new file mode 100644 index 0000000..708f776 --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/c0880c.wgsl
@@ -0,0 +1,44 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn degrees(vec<3, fa>) -> vec<3, fa> +fn degrees_c0880c() { + const arg_0 = vec3(1.); + var res = degrees(arg_0); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + degrees_c0880c(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + degrees_c0880c(); +} + +@compute @workgroup_size(1) +fn compute_main() { + degrees_c0880c(); +}
diff --git a/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000..78013a9 --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.dxc.hlsl
@@ -0,0 +1,30 @@ +void degrees_c0880c() { + float3 res = (57.295780182f).xxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + degrees_c0880c(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + degrees_c0880c(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + degrees_c0880c(); + return; +}
diff --git a/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000..78013a9 --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.fxc.hlsl
@@ -0,0 +1,30 @@ +void degrees_c0880c() { + float3 res = (57.295780182f).xxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + degrees_c0880c(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + degrees_c0880c(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + degrees_c0880c(); + return; +}
diff --git a/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.glsl new file mode 100644 index 0000000..ad03188 --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.glsl
@@ -0,0 +1,49 @@ +#version 310 es + +void degrees_c0880c() { + vec3 res = vec3(57.295780182f); +} + +vec4 vertex_main() { + degrees_c0880c(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void degrees_c0880c() { + vec3 res = vec3(57.295780182f); +} + +void fragment_main() { + degrees_c0880c(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void degrees_c0880c() { + vec3 res = vec3(57.295780182f); +} + +void compute_main() { + degrees_c0880c(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +}
diff --git a/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.msl b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.msl new file mode 100644 index 0000000..4b019e9 --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.msl
@@ -0,0 +1,33 @@ +#include <metal_stdlib> + +using namespace metal; +void degrees_c0880c() { + float3 res = float3(57.295780182f); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + degrees_c0880c(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + degrees_c0880c(); + return; +} + +kernel void compute_main() { + degrees_c0880c(); + return; +} +
diff --git a/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.spvasm new file mode 100644 index 0000000..7fe5c73 --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.spvasm
@@ -0,0 +1,67 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 33 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %degrees_c0880c "degrees_c0880c" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %v3float = OpTypeVector %float 3 +%float_57_2957802 = OpConstant %float 57.2957802 + %15 = OpConstantComposite %v3float %float_57_2957802 %float_57_2957802 %float_57_2957802 +%_ptr_Function_v3float = OpTypePointer Function %v3float + %18 = OpConstantNull %v3float + %19 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%degrees_c0880c = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v3float Function %18 + OpStore %res %15 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %19 + %21 = OpLabel + %22 = OpFunctionCall %void %degrees_c0880c + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %24 = OpLabel + %25 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %25 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %28 = OpLabel + %29 = OpFunctionCall %void %degrees_c0880c + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %31 = OpLabel + %32 = OpFunctionCall %void %degrees_c0880c + OpReturn + OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.wgsl new file mode 100644 index 0000000..0f6b91d --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.wgsl
@@ -0,0 +1,20 @@ +fn degrees_c0880c() { + const arg_0 = vec3(1.0); + var res = degrees(arg_0); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + degrees_c0880c(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + degrees_c0880c(); +} + +@compute @workgroup_size(1) +fn compute_main() { + degrees_c0880c(); +}
diff --git a/test/tint/builtins/gen/var/degrees/d43a49.wgsl b/test/tint/builtins/gen/var/degrees/d43a49.wgsl new file mode 100644 index 0000000..3184f24 --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/d43a49.wgsl
@@ -0,0 +1,44 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn degrees(vec<4, fa>) -> vec<4, fa> +fn degrees_d43a49() { + const arg_0 = vec4(1.); + var res = degrees(arg_0); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + degrees_d43a49(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + degrees_d43a49(); +} + +@compute @workgroup_size(1) +fn compute_main() { + degrees_d43a49(); +}
diff --git a/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000..0ea5685 --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.dxc.hlsl
@@ -0,0 +1,30 @@ +void degrees_d43a49() { + float4 res = (57.295780182f).xxxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + degrees_d43a49(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + degrees_d43a49(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + degrees_d43a49(); + return; +}
diff --git a/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000..0ea5685 --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.fxc.hlsl
@@ -0,0 +1,30 @@ +void degrees_d43a49() { + float4 res = (57.295780182f).xxxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + degrees_d43a49(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + degrees_d43a49(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + degrees_d43a49(); + return; +}
diff --git a/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.glsl new file mode 100644 index 0000000..893f790 --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.glsl
@@ -0,0 +1,49 @@ +#version 310 es + +void degrees_d43a49() { + vec4 res = vec4(57.295780182f); +} + +vec4 vertex_main() { + degrees_d43a49(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void degrees_d43a49() { + vec4 res = vec4(57.295780182f); +} + +void fragment_main() { + degrees_d43a49(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void degrees_d43a49() { + vec4 res = vec4(57.295780182f); +} + +void compute_main() { + degrees_d43a49(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +}
diff --git a/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.msl b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.msl new file mode 100644 index 0000000..adddeb0 --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.msl
@@ -0,0 +1,33 @@ +#include <metal_stdlib> + +using namespace metal; +void degrees_d43a49() { + float4 res = float4(57.295780182f); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + degrees_d43a49(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + degrees_d43a49(); + return; +} + +kernel void compute_main() { + degrees_d43a49(); + return; +} +
diff --git a/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.spvasm b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.spvasm new file mode 100644 index 0000000..d0ca406 --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.spvasm
@@ -0,0 +1,65 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 31 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %degrees_d43a49 "degrees_d43a49" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void +%float_57_2957802 = OpConstant %float 57.2957802 + %14 = OpConstantComposite %v4float %float_57_2957802 %float_57_2957802 %float_57_2957802 %float_57_2957802 +%_ptr_Function_v4float = OpTypePointer Function %v4float + %17 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%degrees_d43a49 = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v4float Function %5 + OpStore %res %14 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %17 + %19 = OpLabel + %20 = OpFunctionCall %void %degrees_d43a49 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %22 = OpLabel + %23 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %23 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %26 = OpLabel + %27 = OpFunctionCall %void %degrees_d43a49 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %29 = OpLabel + %30 = OpFunctionCall %void %degrees_d43a49 + OpReturn + OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.wgsl b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.wgsl new file mode 100644 index 0000000..0fdb2e9 --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.wgsl
@@ -0,0 +1,20 @@ +fn degrees_d43a49() { + const arg_0 = vec4(1.0); + var res = degrees(arg_0); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + degrees_d43a49(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + degrees_d43a49(); +} + +@compute @workgroup_size(1) +fn compute_main() { + degrees_d43a49(); +}
diff --git a/test/tint/builtins/gen/var/degrees/fafa7e.wgsl b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl new file mode 100644 index 0000000..f1adddc --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl
@@ -0,0 +1,44 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn degrees(fa) -> fa +fn degrees_fafa7e() { + const arg_0 = 1.; + var res = degrees(arg_0); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + degrees_fafa7e(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + degrees_fafa7e(); +} + +@compute @workgroup_size(1) +fn compute_main() { + degrees_fafa7e(); +}
diff --git a/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000..a11be10 --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.dxc.hlsl
@@ -0,0 +1,30 @@ +void degrees_fafa7e() { + float res = 57.295780182f; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + degrees_fafa7e(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + degrees_fafa7e(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + degrees_fafa7e(); + return; +}
diff --git a/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000..a11be10 --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.fxc.hlsl
@@ -0,0 +1,30 @@ +void degrees_fafa7e() { + float res = 57.295780182f; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + degrees_fafa7e(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + degrees_fafa7e(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + degrees_fafa7e(); + return; +}
diff --git a/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.glsl new file mode 100644 index 0000000..4572eb3 --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.glsl
@@ -0,0 +1,49 @@ +#version 310 es + +void degrees_fafa7e() { + float res = 57.295780182f; +} + +vec4 vertex_main() { + degrees_fafa7e(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void degrees_fafa7e() { + float res = 57.295780182f; +} + +void fragment_main() { + degrees_fafa7e(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void degrees_fafa7e() { + float res = 57.295780182f; +} + +void compute_main() { + degrees_fafa7e(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +}
diff --git a/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.msl b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.msl new file mode 100644 index 0000000..770b0ab --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.msl
@@ -0,0 +1,33 @@ +#include <metal_stdlib> + +using namespace metal; +void degrees_fafa7e() { + float res = 57.295780182f; +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + degrees_fafa7e(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + degrees_fafa7e(); + return; +} + +kernel void compute_main() { + degrees_fafa7e(); + return; +} +
diff --git a/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.spvasm new file mode 100644 index 0000000..e3e9810 --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.spvasm
@@ -0,0 +1,64 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 30 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %degrees_fafa7e "degrees_fafa7e" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void +%float_57_2957802 = OpConstant %float 57.2957802 +%_ptr_Function_float = OpTypePointer Function %float + %16 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%degrees_fafa7e = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_float Function %8 + OpStore %res %float_57_2957802 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %16 + %18 = OpLabel + %19 = OpFunctionCall %void %degrees_fafa7e + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %21 = OpLabel + %22 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %22 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %25 = OpLabel + %26 = OpFunctionCall %void %degrees_fafa7e + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %28 = OpLabel + %29 = OpFunctionCall %void %degrees_fafa7e + OpReturn + OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.wgsl new file mode 100644 index 0000000..1651ee1 --- /dev/null +++ b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.wgsl
@@ -0,0 +1,20 @@ +fn degrees_fafa7e() { + const arg_0 = 1.0; + var res = degrees(arg_0); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + degrees_fafa7e(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + degrees_fafa7e(); +} + +@compute @workgroup_size(1) +fn compute_main() { + degrees_fafa7e(); +}
diff --git a/test/tint/builtins/gen/var/radians/379214.wgsl b/test/tint/builtins/gen/var/radians/379214.wgsl new file mode 100644 index 0000000..23569e7 --- /dev/null +++ b/test/tint/builtins/gen/var/radians/379214.wgsl
@@ -0,0 +1,44 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn radians(vec<3, fa>) -> vec<3, fa> +fn radians_379214() { + const arg_0 = vec3(1.); + var res = radians(arg_0); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + radians_379214(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + radians_379214(); +} + +@compute @workgroup_size(1) +fn compute_main() { + radians_379214(); +}
diff --git a/test/tint/builtins/gen/var/radians/379214.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000..247db1d --- /dev/null +++ b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.dxc.hlsl
@@ -0,0 +1,30 @@ +void radians_379214() { + float3 res = (0.017453292f).xxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + radians_379214(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + radians_379214(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + radians_379214(); + return; +}
diff --git a/test/tint/builtins/gen/var/radians/379214.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000..247db1d --- /dev/null +++ b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.fxc.hlsl
@@ -0,0 +1,30 @@ +void radians_379214() { + float3 res = (0.017453292f).xxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + radians_379214(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + radians_379214(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + radians_379214(); + return; +}
diff --git a/test/tint/builtins/gen/var/radians/379214.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.glsl new file mode 100644 index 0000000..5593c1d --- /dev/null +++ b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.glsl
@@ -0,0 +1,49 @@ +#version 310 es + +void radians_379214() { + vec3 res = vec3(0.017453292f); +} + +vec4 vertex_main() { + radians_379214(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void radians_379214() { + vec3 res = vec3(0.017453292f); +} + +void fragment_main() { + radians_379214(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void radians_379214() { + vec3 res = vec3(0.017453292f); +} + +void compute_main() { + radians_379214(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +}
diff --git a/test/tint/builtins/gen/var/radians/379214.wgsl.expected.msl b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.msl new file mode 100644 index 0000000..638763a --- /dev/null +++ b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.msl
@@ -0,0 +1,33 @@ +#include <metal_stdlib> + +using namespace metal; +void radians_379214() { + float3 res = float3(0.017453292f); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + radians_379214(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + radians_379214(); + return; +} + +kernel void compute_main() { + radians_379214(); + return; +} +
diff --git a/test/tint/builtins/gen/var/radians/379214.wgsl.expected.spvasm b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.spvasm new file mode 100644 index 0000000..ec9360a --- /dev/null +++ b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.spvasm
@@ -0,0 +1,67 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 33 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %radians_379214 "radians_379214" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %v3float = OpTypeVector %float 3 +%float_0_0174532924 = OpConstant %float 0.0174532924 + %15 = OpConstantComposite %v3float %float_0_0174532924 %float_0_0174532924 %float_0_0174532924 +%_ptr_Function_v3float = OpTypePointer Function %v3float + %18 = OpConstantNull %v3float + %19 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%radians_379214 = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v3float Function %18 + OpStore %res %15 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %19 + %21 = OpLabel + %22 = OpFunctionCall %void %radians_379214 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %24 = OpLabel + %25 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %25 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %28 = OpLabel + %29 = OpFunctionCall %void %radians_379214 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %31 = OpLabel + %32 = OpFunctionCall %void %radians_379214 + OpReturn + OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/radians/379214.wgsl.expected.wgsl b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.wgsl new file mode 100644 index 0000000..19821f0 --- /dev/null +++ b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.wgsl
@@ -0,0 +1,20 @@ +fn radians_379214() { + const arg_0 = vec3(1.0); + var res = radians(arg_0); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + radians_379214(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + radians_379214(); +} + +@compute @workgroup_size(1) +fn compute_main() { + radians_379214(); +}
diff --git a/test/tint/builtins/gen/var/radians/44a9f8.wgsl b/test/tint/builtins/gen/var/radians/44a9f8.wgsl new file mode 100644 index 0000000..4f64479 --- /dev/null +++ b/test/tint/builtins/gen/var/radians/44a9f8.wgsl
@@ -0,0 +1,44 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn radians(vec<2, fa>) -> vec<2, fa> +fn radians_44a9f8() { + const arg_0 = vec2(1.); + var res = radians(arg_0); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + radians_44a9f8(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + radians_44a9f8(); +} + +@compute @workgroup_size(1) +fn compute_main() { + radians_44a9f8(); +}
diff --git a/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000..cb67c5d9 --- /dev/null +++ b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.dxc.hlsl
@@ -0,0 +1,30 @@ +void radians_44a9f8() { + float2 res = (0.017453292f).xx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + radians_44a9f8(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + radians_44a9f8(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + radians_44a9f8(); + return; +}
diff --git a/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000..cb67c5d9 --- /dev/null +++ b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.fxc.hlsl
@@ -0,0 +1,30 @@ +void radians_44a9f8() { + float2 res = (0.017453292f).xx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + radians_44a9f8(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + radians_44a9f8(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + radians_44a9f8(); + return; +}
diff --git a/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.glsl new file mode 100644 index 0000000..6caa601 --- /dev/null +++ b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.glsl
@@ -0,0 +1,49 @@ +#version 310 es + +void radians_44a9f8() { + vec2 res = vec2(0.017453292f); +} + +vec4 vertex_main() { + radians_44a9f8(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void radians_44a9f8() { + vec2 res = vec2(0.017453292f); +} + +void fragment_main() { + radians_44a9f8(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void radians_44a9f8() { + vec2 res = vec2(0.017453292f); +} + +void compute_main() { + radians_44a9f8(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +}
diff --git a/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.msl b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.msl new file mode 100644 index 0000000..fea0149 --- /dev/null +++ b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.msl
@@ -0,0 +1,33 @@ +#include <metal_stdlib> + +using namespace metal; +void radians_44a9f8() { + float2 res = float2(0.017453292f); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + radians_44a9f8(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + radians_44a9f8(); + return; +} + +kernel void compute_main() { + radians_44a9f8(); + return; +} +
diff --git a/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.spvasm new file mode 100644 index 0000000..4e135fc --- /dev/null +++ b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.spvasm
@@ -0,0 +1,67 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 33 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %radians_44a9f8 "radians_44a9f8" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %v2float = OpTypeVector %float 2 +%float_0_0174532924 = OpConstant %float 0.0174532924 + %15 = OpConstantComposite %v2float %float_0_0174532924 %float_0_0174532924 +%_ptr_Function_v2float = OpTypePointer Function %v2float + %18 = OpConstantNull %v2float + %19 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%radians_44a9f8 = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v2float Function %18 + OpStore %res %15 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %19 + %21 = OpLabel + %22 = OpFunctionCall %void %radians_44a9f8 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %24 = OpLabel + %25 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %25 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %28 = OpLabel + %29 = OpFunctionCall %void %radians_44a9f8 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %31 = OpLabel + %32 = OpFunctionCall %void %radians_44a9f8 + OpReturn + OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.wgsl new file mode 100644 index 0000000..bd1268d --- /dev/null +++ b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.wgsl
@@ -0,0 +1,20 @@ +fn radians_44a9f8() { + const arg_0 = vec2(1.0); + var res = radians(arg_0); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + radians_44a9f8(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + radians_44a9f8(); +} + +@compute @workgroup_size(1) +fn compute_main() { + radians_44a9f8(); +}
diff --git a/test/tint/builtins/gen/var/radians/524a91.wgsl b/test/tint/builtins/gen/var/radians/524a91.wgsl new file mode 100644 index 0000000..0b217c0 --- /dev/null +++ b/test/tint/builtins/gen/var/radians/524a91.wgsl
@@ -0,0 +1,44 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn radians(vec<4, fa>) -> vec<4, fa> +fn radians_524a91() { + const arg_0 = vec4(1.); + var res = radians(arg_0); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + radians_524a91(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + radians_524a91(); +} + +@compute @workgroup_size(1) +fn compute_main() { + radians_524a91(); +}
diff --git a/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000..b3e2192 --- /dev/null +++ b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.dxc.hlsl
@@ -0,0 +1,30 @@ +void radians_524a91() { + float4 res = (0.017453292f).xxxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + radians_524a91(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + radians_524a91(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + radians_524a91(); + return; +}
diff --git a/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000..b3e2192 --- /dev/null +++ b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.fxc.hlsl
@@ -0,0 +1,30 @@ +void radians_524a91() { + float4 res = (0.017453292f).xxxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + radians_524a91(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + radians_524a91(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + radians_524a91(); + return; +}
diff --git a/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.glsl new file mode 100644 index 0000000..fd1508e --- /dev/null +++ b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.glsl
@@ -0,0 +1,49 @@ +#version 310 es + +void radians_524a91() { + vec4 res = vec4(0.017453292f); +} + +vec4 vertex_main() { + radians_524a91(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void radians_524a91() { + vec4 res = vec4(0.017453292f); +} + +void fragment_main() { + radians_524a91(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void radians_524a91() { + vec4 res = vec4(0.017453292f); +} + +void compute_main() { + radians_524a91(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +}
diff --git a/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.msl b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.msl new file mode 100644 index 0000000..fa539e0 --- /dev/null +++ b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.msl
@@ -0,0 +1,33 @@ +#include <metal_stdlib> + +using namespace metal; +void radians_524a91() { + float4 res = float4(0.017453292f); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + radians_524a91(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + radians_524a91(); + return; +} + +kernel void compute_main() { + radians_524a91(); + return; +} +
diff --git a/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.spvasm b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.spvasm new file mode 100644 index 0000000..a9c1edf --- /dev/null +++ b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.spvasm
@@ -0,0 +1,65 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 31 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %radians_524a91 "radians_524a91" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void +%float_0_0174532924 = OpConstant %float 0.0174532924 + %14 = OpConstantComposite %v4float %float_0_0174532924 %float_0_0174532924 %float_0_0174532924 %float_0_0174532924 +%_ptr_Function_v4float = OpTypePointer Function %v4float + %17 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%radians_524a91 = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v4float Function %5 + OpStore %res %14 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %17 + %19 = OpLabel + %20 = OpFunctionCall %void %radians_524a91 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %22 = OpLabel + %23 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %23 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %26 = OpLabel + %27 = OpFunctionCall %void %radians_524a91 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %29 = OpLabel + %30 = OpFunctionCall %void %radians_524a91 + OpReturn + OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.wgsl b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.wgsl new file mode 100644 index 0000000..ac6ced2 --- /dev/null +++ b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.wgsl
@@ -0,0 +1,20 @@ +fn radians_524a91() { + const arg_0 = vec4(1.0); + var res = radians(arg_0); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + radians_524a91(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + radians_524a91(); +} + +@compute @workgroup_size(1) +fn compute_main() { + radians_524a91(); +}
diff --git a/test/tint/builtins/gen/var/radians/bff231.wgsl b/test/tint/builtins/gen/var/radians/bff231.wgsl new file mode 100644 index 0000000..a38f95f --- /dev/null +++ b/test/tint/builtins/gen/var/radians/bff231.wgsl
@@ -0,0 +1,44 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn radians(fa) -> fa +fn radians_bff231() { + const arg_0 = 1.; + var res = radians(arg_0); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + radians_bff231(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + radians_bff231(); +} + +@compute @workgroup_size(1) +fn compute_main() { + radians_bff231(); +}
diff --git a/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000..cde7b14 --- /dev/null +++ b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.dxc.hlsl
@@ -0,0 +1,30 @@ +void radians_bff231() { + float res = 0.017453292f; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + radians_bff231(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + radians_bff231(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + radians_bff231(); + return; +}
diff --git a/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000..cde7b14 --- /dev/null +++ b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.fxc.hlsl
@@ -0,0 +1,30 @@ +void radians_bff231() { + float res = 0.017453292f; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + radians_bff231(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + radians_bff231(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + radians_bff231(); + return; +}
diff --git a/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.glsl new file mode 100644 index 0000000..a445da1 --- /dev/null +++ b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.glsl
@@ -0,0 +1,49 @@ +#version 310 es + +void radians_bff231() { + float res = 0.017453292f; +} + +vec4 vertex_main() { + radians_bff231(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void radians_bff231() { + float res = 0.017453292f; +} + +void fragment_main() { + radians_bff231(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void radians_bff231() { + float res = 0.017453292f; +} + +void compute_main() { + radians_bff231(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +}
diff --git a/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.msl b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.msl new file mode 100644 index 0000000..ddd3b6e --- /dev/null +++ b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.msl
@@ -0,0 +1,33 @@ +#include <metal_stdlib> + +using namespace metal; +void radians_bff231() { + float res = 0.017453292f; +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + radians_bff231(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + radians_bff231(); + return; +} + +kernel void compute_main() { + radians_bff231(); + return; +} +
diff --git a/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.spvasm b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.spvasm new file mode 100644 index 0000000..0a3316a --- /dev/null +++ b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.spvasm
@@ -0,0 +1,64 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 30 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %radians_bff231 "radians_bff231" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void +%float_0_0174532924 = OpConstant %float 0.0174532924 +%_ptr_Function_float = OpTypePointer Function %float + %16 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%radians_bff231 = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_float Function %8 + OpStore %res %float_0_0174532924 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %16 + %18 = OpLabel + %19 = OpFunctionCall %void %radians_bff231 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %21 = OpLabel + %22 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %22 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %25 = OpLabel + %26 = OpFunctionCall %void %radians_bff231 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %28 = OpLabel + %29 = OpFunctionCall %void %radians_bff231 + OpReturn + OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.wgsl b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.wgsl new file mode 100644 index 0000000..127e23d --- /dev/null +++ b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.wgsl
@@ -0,0 +1,20 @@ +fn radians_bff231() { + const arg_0 = 1.0; + var res = radians(arg_0); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4<f32> { + radians_bff231(); + return vec4<f32>(); +} + +@fragment +fn fragment_main() { + radians_bff231(); +} + +@compute @workgroup_size(1) +fn compute_main() { + radians_bff231(); +}
diff --git a/test/tint/builtins/repeated_use.wgsl b/test/tint/builtins/repeated_use.wgsl index f1f1f0f..f6391a3 100644 --- a/test/tint/builtins/repeated_use.wgsl +++ b/test/tint/builtins/repeated_use.wgsl
@@ -2,19 +2,31 @@ // same builtin overload results in single helper being generated. @compute @workgroup_size(1) fn main() { - let a = degrees(vec4<f32>()); - let b = degrees(vec4<f32>(1.)); - let c = degrees(vec4<f32>(1., 2., 3., 4.)); + let va = vec4<f32>(); + let a = degrees(va); + let vb = vec4<f32>(1.); + let b = degrees(vb); + let vc = vec4<f32>(1., 2., 3., 4.); + let c = degrees(vc); - let d = degrees(vec3<f32>()); - let e = degrees(vec3<f32>(1.)); - let f = degrees(vec3<f32>(1., 2., 3.)); + let vd = vec3<f32>(); + let d = degrees(vd); + let ve = vec3<f32>(1.); + let e = degrees(ve); + let vf = vec3<f32>(1., 2., 3.); + let f = degrees(vf); - let g = degrees(vec2<f32>()); - let h = degrees(vec2<f32>(1.)); - let i = degrees(vec2<f32>(1., 2.)); + let vg = vec2<f32>(); + let g = degrees(vg); + let vh = vec2<f32>(1.); + let h = degrees(vh); + let vi = vec2<f32>(1., 2.); + let i = degrees(vi); - let j = degrees(1.); - let k = degrees(2.); - let l = degrees(3.); + let vj = 1.; + let j = degrees(vj); + let vk = 2.; + let k = degrees(vk); + let vl = 3.; + let l = degrees(vl); }
diff --git a/test/tint/builtins/repeated_use.wgsl.expected.dxc.hlsl b/test/tint/builtins/repeated_use.wgsl.expected.dxc.hlsl index bbf29d1..5d53231 100644 --- a/test/tint/builtins/repeated_use.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/repeated_use.wgsl.expected.dxc.hlsl
@@ -16,17 +16,29 @@ [numthreads(1, 1, 1)] void main() { - const float4 a = tint_degrees((0.0f).xxxx); - const float4 b = tint_degrees((1.0f).xxxx); - const float4 c = tint_degrees(float4(1.0f, 2.0f, 3.0f, 4.0f)); - const float3 d = tint_degrees_1((0.0f).xxx); - const float3 e = tint_degrees_1((1.0f).xxx); - const float3 f = tint_degrees_1(float3(1.0f, 2.0f, 3.0f)); - const float2 g = tint_degrees_2((0.0f).xx); - const float2 h = tint_degrees_2((1.0f).xx); - const float2 i = tint_degrees_2(float2(1.0f, 2.0f)); - const float j = tint_degrees_3(1.0f); - const float k = tint_degrees_3(2.0f); - const float l = tint_degrees_3(3.0f); + const float4 va = (0.0f).xxxx; + const float4 a = tint_degrees(va); + const float4 vb = (1.0f).xxxx; + const float4 b = tint_degrees(vb); + const float4 vc = float4(1.0f, 2.0f, 3.0f, 4.0f); + const float4 c = tint_degrees(vc); + const float3 vd = (0.0f).xxx; + const float3 d = tint_degrees_1(vd); + const float3 ve = (1.0f).xxx; + const float3 e = tint_degrees_1(ve); + const float3 vf = float3(1.0f, 2.0f, 3.0f); + const float3 f = tint_degrees_1(vf); + const float2 vg = (0.0f).xx; + const float2 g = tint_degrees_2(vg); + const float2 vh = (1.0f).xx; + const float2 h = tint_degrees_2(vh); + const float2 vi = float2(1.0f, 2.0f); + const float2 i = tint_degrees_2(vi); + const float vj = 1.0f; + const float j = tint_degrees_3(vj); + const float vk = 2.0f; + const float k = tint_degrees_3(vk); + const float vl = 3.0f; + const float l = tint_degrees_3(vl); return; }
diff --git a/test/tint/builtins/repeated_use.wgsl.expected.fxc.hlsl b/test/tint/builtins/repeated_use.wgsl.expected.fxc.hlsl index bbf29d1..5d53231 100644 --- a/test/tint/builtins/repeated_use.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/repeated_use.wgsl.expected.fxc.hlsl
@@ -16,17 +16,29 @@ [numthreads(1, 1, 1)] void main() { - const float4 a = tint_degrees((0.0f).xxxx); - const float4 b = tint_degrees((1.0f).xxxx); - const float4 c = tint_degrees(float4(1.0f, 2.0f, 3.0f, 4.0f)); - const float3 d = tint_degrees_1((0.0f).xxx); - const float3 e = tint_degrees_1((1.0f).xxx); - const float3 f = tint_degrees_1(float3(1.0f, 2.0f, 3.0f)); - const float2 g = tint_degrees_2((0.0f).xx); - const float2 h = tint_degrees_2((1.0f).xx); - const float2 i = tint_degrees_2(float2(1.0f, 2.0f)); - const float j = tint_degrees_3(1.0f); - const float k = tint_degrees_3(2.0f); - const float l = tint_degrees_3(3.0f); + const float4 va = (0.0f).xxxx; + const float4 a = tint_degrees(va); + const float4 vb = (1.0f).xxxx; + const float4 b = tint_degrees(vb); + const float4 vc = float4(1.0f, 2.0f, 3.0f, 4.0f); + const float4 c = tint_degrees(vc); + const float3 vd = (0.0f).xxx; + const float3 d = tint_degrees_1(vd); + const float3 ve = (1.0f).xxx; + const float3 e = tint_degrees_1(ve); + const float3 vf = float3(1.0f, 2.0f, 3.0f); + const float3 f = tint_degrees_1(vf); + const float2 vg = (0.0f).xx; + const float2 g = tint_degrees_2(vg); + const float2 vh = (1.0f).xx; + const float2 h = tint_degrees_2(vh); + const float2 vi = float2(1.0f, 2.0f); + const float2 i = tint_degrees_2(vi); + const float vj = 1.0f; + const float j = tint_degrees_3(vj); + const float vk = 2.0f; + const float k = tint_degrees_3(vk); + const float vl = 3.0f; + const float l = tint_degrees_3(vl); return; }
diff --git a/test/tint/builtins/repeated_use.wgsl.expected.glsl b/test/tint/builtins/repeated_use.wgsl.expected.glsl index fdd29e0..c40ba04 100644 --- a/test/tint/builtins/repeated_use.wgsl.expected.glsl +++ b/test/tint/builtins/repeated_use.wgsl.expected.glsl
@@ -18,18 +18,30 @@ void tint_symbol() { - vec4 a = tint_degrees(vec4(0.0f)); - vec4 b = tint_degrees(vec4(1.0f)); - vec4 c = tint_degrees(vec4(1.0f, 2.0f, 3.0f, 4.0f)); - vec3 d = tint_degrees_1(vec3(0.0f)); - vec3 e = tint_degrees_1(vec3(1.0f)); - vec3 f = tint_degrees_1(vec3(1.0f, 2.0f, 3.0f)); - vec2 g = tint_degrees_2(vec2(0.0f)); - vec2 h = tint_degrees_2(vec2(1.0f)); - vec2 i = tint_degrees_2(vec2(1.0f, 2.0f)); - float j = tint_degrees_3(1.0f); - float k = tint_degrees_3(2.0f); - float l = tint_degrees_3(3.0f); + vec4 va = vec4(0.0f); + vec4 a = tint_degrees(va); + vec4 vb = vec4(1.0f); + vec4 b = tint_degrees(vb); + vec4 vc = vec4(1.0f, 2.0f, 3.0f, 4.0f); + vec4 c = tint_degrees(vc); + vec3 vd = vec3(0.0f); + vec3 d = tint_degrees_1(vd); + vec3 ve = vec3(1.0f); + vec3 e = tint_degrees_1(ve); + vec3 vf = vec3(1.0f, 2.0f, 3.0f); + vec3 f = tint_degrees_1(vf); + vec2 vg = vec2(0.0f); + vec2 g = tint_degrees_2(vg); + vec2 vh = vec2(1.0f); + vec2 h = tint_degrees_2(vh); + vec2 vi = vec2(1.0f, 2.0f); + vec2 i = tint_degrees_2(vi); + float vj = 1.0f; + float j = tint_degrees_3(vj); + float vk = 2.0f; + float k = tint_degrees_3(vk); + float vl = 3.0f; + float l = tint_degrees_3(vl); } layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
diff --git a/test/tint/builtins/repeated_use.wgsl.expected.msl b/test/tint/builtins/repeated_use.wgsl.expected.msl index c0ea4a3..03ffb6a 100644 --- a/test/tint/builtins/repeated_use.wgsl.expected.msl +++ b/test/tint/builtins/repeated_use.wgsl.expected.msl
@@ -19,18 +19,30 @@ } kernel void tint_symbol() { - float4 const a = tint_degrees(float4(0.0f)); - float4 const b = tint_degrees(float4(1.0f)); - float4 const c = tint_degrees(float4(1.0f, 2.0f, 3.0f, 4.0f)); - float3 const d = tint_degrees_1(float3(0.0f)); - float3 const e = tint_degrees_1(float3(1.0f)); - float3 const f = tint_degrees_1(float3(1.0f, 2.0f, 3.0f)); - float2 const g = tint_degrees_2(float2(0.0f)); - float2 const h = tint_degrees_2(float2(1.0f)); - float2 const i = tint_degrees_2(float2(1.0f, 2.0f)); - float const j = tint_degrees_3(1.0f); - float const k = tint_degrees_3(2.0f); - float const l = tint_degrees_3(3.0f); + float4 const va = float4(0.0f); + float4 const a = tint_degrees(va); + float4 const vb = float4(1.0f); + float4 const b = tint_degrees(vb); + float4 const vc = float4(1.0f, 2.0f, 3.0f, 4.0f); + float4 const c = tint_degrees(vc); + float3 const vd = float3(0.0f); + float3 const d = tint_degrees_1(vd); + float3 const ve = float3(1.0f); + float3 const e = tint_degrees_1(ve); + float3 const vf = float3(1.0f, 2.0f, 3.0f); + float3 const f = tint_degrees_1(vf); + float2 const vg = float2(0.0f); + float2 const g = tint_degrees_2(vg); + float2 const vh = float2(1.0f); + float2 const h = tint_degrees_2(vh); + float2 const vi = float2(1.0f, 2.0f); + float2 const i = tint_degrees_2(vi); + float const vj = 1.0f; + float const j = tint_degrees_3(vj); + float const vk = 2.0f; + float const k = tint_degrees_3(vk); + float const vl = 3.0f; + float const l = tint_degrees_3(vl); return; }
diff --git a/test/tint/builtins/repeated_use.wgsl.expected.spvasm b/test/tint/builtins/repeated_use.wgsl.expected.spvasm index 085ef9d..3ef3047 100644 --- a/test/tint/builtins/repeated_use.wgsl.expected.spvasm +++ b/test/tint/builtins/repeated_use.wgsl.expected.spvasm
@@ -4,7 +4,7 @@ ; Bound: 35 ; Schema: 0 OpCapability Shader - %8 = OpExtInstImport "GLSL.std.450" + %9 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint GLCompute %main "main" OpExecutionMode %main LocalSize 1 1 1 @@ -13,34 +13,34 @@ %1 = OpTypeFunction %void %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 - %9 = OpConstantNull %v4float + %7 = OpConstantNull %v4float %float_1 = OpConstant %float 1 - %12 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 + %11 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %float_2 = OpConstant %float 2 %float_3 = OpConstant %float 3 %float_4 = OpConstant %float 4 - %17 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4 + %16 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4 %v3float = OpTypeVector %float 3 - %20 = OpConstantNull %v3float - %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1 - %24 = OpConstantComposite %v3float %float_1 %float_2 %float_3 + %19 = OpConstantNull %v3float + %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1 + %23 = OpConstantComposite %v3float %float_1 %float_2 %float_3 %v2float = OpTypeVector %float 2 - %27 = OpConstantNull %v2float - %29 = OpConstantComposite %v2float %float_1 %float_1 - %31 = OpConstantComposite %v2float %float_1 %float_2 + %26 = OpConstantNull %v2float + %28 = OpConstantComposite %v2float %float_1 %float_1 + %30 = OpConstantComposite %v2float %float_1 %float_2 %main = OpFunction %void None %1 %4 = OpLabel - %5 = OpExtInst %v4float %8 Degrees %9 - %10 = OpExtInst %v4float %8 Degrees %12 - %13 = OpExtInst %v4float %8 Degrees %17 - %18 = OpExtInst %v3float %8 Degrees %20 - %21 = OpExtInst %v3float %8 Degrees %22 - %23 = OpExtInst %v3float %8 Degrees %24 - %25 = OpExtInst %v2float %8 Degrees %27 - %28 = OpExtInst %v2float %8 Degrees %29 - %30 = OpExtInst %v2float %8 Degrees %31 - %32 = OpExtInst %float %8 Degrees %float_1 - %33 = OpExtInst %float %8 Degrees %float_2 - %34 = OpExtInst %float %8 Degrees %float_3 + %8 = OpExtInst %v4float %9 Degrees %7 + %12 = OpExtInst %v4float %9 Degrees %11 + %17 = OpExtInst %v4float %9 Degrees %16 + %20 = OpExtInst %v3float %9 Degrees %19 + %22 = OpExtInst %v3float %9 Degrees %21 + %24 = OpExtInst %v3float %9 Degrees %23 + %27 = OpExtInst %v2float %9 Degrees %26 + %29 = OpExtInst %v2float %9 Degrees %28 + %31 = OpExtInst %v2float %9 Degrees %30 + %32 = OpExtInst %float %9 Degrees %float_1 + %33 = OpExtInst %float %9 Degrees %float_2 + %34 = OpExtInst %float %9 Degrees %float_3 OpReturn OpFunctionEnd
diff --git a/test/tint/builtins/repeated_use.wgsl.expected.wgsl b/test/tint/builtins/repeated_use.wgsl.expected.wgsl index 0af3aa2..d857c10 100644 --- a/test/tint/builtins/repeated_use.wgsl.expected.wgsl +++ b/test/tint/builtins/repeated_use.wgsl.expected.wgsl
@@ -1,15 +1,27 @@ @compute @workgroup_size(1) fn main() { - let a = degrees(vec4<f32>()); - let b = degrees(vec4<f32>(1.0)); - let c = degrees(vec4<f32>(1.0, 2.0, 3.0, 4.0)); - let d = degrees(vec3<f32>()); - let e = degrees(vec3<f32>(1.0)); - let f = degrees(vec3<f32>(1.0, 2.0, 3.0)); - let g = degrees(vec2<f32>()); - let h = degrees(vec2<f32>(1.0)); - let i = degrees(vec2<f32>(1.0, 2.0)); - let j = degrees(1.0); - let k = degrees(2.0); - let l = degrees(3.0); + let va = vec4<f32>(); + let a = degrees(va); + let vb = vec4<f32>(1.0); + let b = degrees(vb); + let vc = vec4<f32>(1.0, 2.0, 3.0, 4.0); + let c = degrees(vc); + let vd = vec3<f32>(); + let d = degrees(vd); + let ve = vec3<f32>(1.0); + let e = degrees(ve); + let vf = vec3<f32>(1.0, 2.0, 3.0); + let f = degrees(vf); + let vg = vec2<f32>(); + let g = degrees(vg); + let vh = vec2<f32>(1.0); + let h = degrees(vh); + let vi = vec2<f32>(1.0, 2.0); + let i = degrees(vi); + let vj = 1.0; + let j = degrees(vj); + let vk = 2.0; + let k = degrees(vk); + let vl = 3.0; + let l = degrees(vl); }