mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-06-05 06:03:34 +00:00
Add const-eval for all
.
This CL adds const-eval for the `all` builtin. Bug: tint:1581 Change-Id: Ib1d857ba24114c61e1a90b30dd66d063edfa136d Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/107464 Reviewed-by: Antonio Maiorano <amaiorano@google.com> Commit-Queue: Dan Sinclair <dsinclair@chromium.org> Reviewed-by: Ben Clayton <bclayton@google.com> Kokoro: Kokoro <noreply+kokoro@google.com>
This commit is contained in:
parent
aa4b64f4c8
commit
58eca19f33
@ -410,8 +410,8 @@ fn acos<T: f32_f16>(T) -> T
|
|||||||
fn acos<N: num, T: f32_f16>(vec<N, T>) -> vec<N, T>
|
fn acos<N: num, T: f32_f16>(vec<N, T>) -> vec<N, T>
|
||||||
fn acosh<T: f32_f16>(T) -> T
|
fn acosh<T: f32_f16>(T) -> T
|
||||||
fn acosh<N: num, T: f32_f16>(vec<N, T>) -> vec<N, T>
|
fn acosh<N: num, T: f32_f16>(vec<N, T>) -> vec<N, T>
|
||||||
fn all(bool) -> bool
|
@const fn all(bool) -> bool
|
||||||
fn all<N: num>(vec<N, bool>) -> bool
|
@const fn all<N: num>(vec<N, bool>) -> bool
|
||||||
@const fn any(bool) -> bool
|
@const fn any(bool) -> bool
|
||||||
@const fn any<N: num>(vec<N, bool>) -> bool
|
@const fn any<N: num>(vec<N, bool>) -> bool
|
||||||
fn arrayLength<T, A: access>(ptr<storage, array<T>, A>) -> u32
|
fn arrayLength<T, A: access>(ptr<storage, array<T>, A>) -> u32
|
||||||
|
@ -1570,6 +1570,12 @@ ConstEval::Result ConstEval::OpShiftLeft(const sem::Type* ty,
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ConstEval::Result ConstEval::all(const sem::Type* ty,
|
||||||
|
utils::VectorRef<const sem::Constant*> args,
|
||||||
|
const Source&) {
|
||||||
|
return CreateElement(builder, ty, !args[0]->AnyZero());
|
||||||
|
}
|
||||||
|
|
||||||
ConstEval::Result ConstEval::any(const sem::Type* ty,
|
ConstEval::Result ConstEval::any(const sem::Type* ty,
|
||||||
utils::VectorRef<const sem::Constant*> args,
|
utils::VectorRef<const sem::Constant*> args,
|
||||||
const Source&) {
|
const Source&) {
|
||||||
|
@ -377,6 +377,15 @@ class ConstEval {
|
|||||||
// Builtins
|
// Builtins
|
||||||
////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
/// all 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 all(const sem::Type* ty,
|
||||||
|
utils::VectorRef<const sem::Constant*> args,
|
||||||
|
const Source& source);
|
||||||
|
|
||||||
/// any builtin
|
/// any builtin
|
||||||
/// @param ty the expression type
|
/// @param ty the expression type
|
||||||
/// @param args the input arguments
|
/// @param args the input arguments
|
||||||
|
@ -146,6 +146,35 @@ INSTANTIATE_TEST_SUITE_P( //
|
|||||||
C({1.0_a, 0_a}, kPiOver2<AFloat>),
|
C({1.0_a, 0_a}, kPiOver2<AFloat>),
|
||||||
})));
|
})));
|
||||||
|
|
||||||
|
static std::vector<Case> AllCases() {
|
||||||
|
return {
|
||||||
|
C({Val(true)}, Val(true)),
|
||||||
|
C({Val(false)}, Val(false)),
|
||||||
|
|
||||||
|
C({Vec(true, true)}, Val(true)),
|
||||||
|
C({Vec(true, false)}, Val(false)),
|
||||||
|
C({Vec(false, true)}, Val(false)),
|
||||||
|
C({Vec(false, false)}, Val(false)),
|
||||||
|
|
||||||
|
C({Vec(true, true, true)}, Val(true)),
|
||||||
|
C({Vec(false, true, true)}, Val(false)),
|
||||||
|
C({Vec(true, false, true)}, Val(false)),
|
||||||
|
C({Vec(true, true, false)}, Val(false)),
|
||||||
|
C({Vec(false, false, false)}, Val(false)),
|
||||||
|
|
||||||
|
C({Vec(true, true, true, true)}, Val(true)),
|
||||||
|
C({Vec(false, true, true, true)}, Val(false)),
|
||||||
|
C({Vec(true, false, true, true)}, Val(false)),
|
||||||
|
C({Vec(true, true, false, true)}, Val(false)),
|
||||||
|
C({Vec(true, true, true, false)}, Val(false)),
|
||||||
|
C({Vec(false, false, false, false)}, Val(false)),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
INSTANTIATE_TEST_SUITE_P( //
|
||||||
|
All,
|
||||||
|
ResolverConstEvalBuiltinTest,
|
||||||
|
testing::Combine(testing::Values(sem::BuiltinType::kAll), testing::ValuesIn(AllCases())));
|
||||||
|
|
||||||
static std::vector<Case> AnyCases() {
|
static std::vector<Case> AnyCases() {
|
||||||
return {
|
return {
|
||||||
C({Val(true)}, Val(true)),
|
C({Val(true)}, Val(true)),
|
||||||
|
@ -13430,7 +13430,7 @@ constexpr OverloadInfo kOverloads[] = {
|
|||||||
/* parameters */ &kParameters[996],
|
/* parameters */ &kParameters[996],
|
||||||
/* return matcher indices */ &kMatcherIndices[41],
|
/* return matcher indices */ &kMatcherIndices[41],
|
||||||
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
|
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
|
||||||
/* const eval */ nullptr,
|
/* const eval */ &ConstEval::all,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
/* [425] */
|
/* [425] */
|
||||||
@ -13442,7 +13442,7 @@ constexpr OverloadInfo kOverloads[] = {
|
|||||||
/* parameters */ &kParameters[1017],
|
/* parameters */ &kParameters[1017],
|
||||||
/* return matcher indices */ &kMatcherIndices[41],
|
/* return matcher indices */ &kMatcherIndices[41],
|
||||||
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
|
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
|
||||||
/* const eval */ nullptr,
|
/* const eval */ &ConstEval::all,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
/* [426] */
|
/* [426] */
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
void all_353d6a() {
|
void all_353d6a() {
|
||||||
bool res = all(true);
|
bool res = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
struct tint_symbol {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
void all_353d6a() {
|
void all_353d6a() {
|
||||||
bool res = all(true);
|
bool res = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
struct tint_symbol {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
void all_353d6a() {
|
void all_353d6a() {
|
||||||
bool res = all(true);
|
bool res = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
struct tint_symbol {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 33
|
; Bound: 32
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
@ -33,34 +33,34 @@
|
|||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%true = OpConstantTrue %bool
|
%true = OpConstantTrue %bool
|
||||||
%_ptr_Function_bool = OpTypePointer Function %bool
|
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||||
%18 = OpConstantNull %bool
|
%17 = OpConstantNull %bool
|
||||||
%19 = OpTypeFunction %v4float
|
%18 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%all_353d6a = OpFunction %void None %9
|
%all_353d6a = OpFunction %void None %9
|
||||||
%12 = OpLabel
|
%12 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_bool Function %18
|
%res = OpVariable %_ptr_Function_bool Function %17
|
||||||
OpStore %res %true
|
OpStore %res %true
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %19
|
%vertex_main_inner = OpFunction %v4float None %18
|
||||||
%21 = OpLabel
|
%20 = OpLabel
|
||||||
%22 = OpFunctionCall %void %all_353d6a
|
%21 = OpFunctionCall %void %all_353d6a
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %9
|
%vertex_main = OpFunction %void None %9
|
||||||
%24 = OpLabel
|
%23 = OpLabel
|
||||||
%25 = OpFunctionCall %v4float %vertex_main_inner
|
%24 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %25
|
OpStore %value %24
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %9
|
%fragment_main = OpFunction %void None %9
|
||||||
%28 = OpLabel
|
%27 = OpLabel
|
||||||
%29 = OpFunctionCall %void %all_353d6a
|
%28 = OpFunctionCall %void %all_353d6a
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %9
|
%compute_main = OpFunction %void None %9
|
||||||
%31 = OpLabel
|
%30 = OpLabel
|
||||||
%32 = OpFunctionCall %void %all_353d6a
|
%31 = OpFunctionCall %void %all_353d6a
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
void all_986c7b() {
|
void all_986c7b() {
|
||||||
bool res = all((true).xxxx);
|
bool res = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
struct tint_symbol {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
void all_986c7b() {
|
void all_986c7b() {
|
||||||
bool res = all((true).xxxx);
|
bool res = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
struct tint_symbol {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#version 310 es
|
#version 310 es
|
||||||
|
|
||||||
void all_986c7b() {
|
void all_986c7b() {
|
||||||
bool res = all(bvec4(true));
|
bool res = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
vec4 vertex_main() {
|
vec4 vertex_main() {
|
||||||
@ -21,7 +21,7 @@ void main() {
|
|||||||
precision mediump float;
|
precision mediump float;
|
||||||
|
|
||||||
void all_986c7b() {
|
void all_986c7b() {
|
||||||
bool res = all(bvec4(true));
|
bool res = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void fragment_main() {
|
void fragment_main() {
|
||||||
@ -35,7 +35,7 @@ void main() {
|
|||||||
#version 310 es
|
#version 310 es
|
||||||
|
|
||||||
void all_986c7b() {
|
void all_986c7b() {
|
||||||
bool res = all(bvec4(true));
|
bool res = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void compute_main() {
|
void compute_main() {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
void all_986c7b() {
|
void all_986c7b() {
|
||||||
bool res = all(bool4(true));
|
bool res = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
struct tint_symbol {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 35
|
; Bound: 32
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
@ -31,39 +31,36 @@
|
|||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%9 = OpTypeFunction %void
|
%9 = OpTypeFunction %void
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%v4bool = OpTypeVector %bool 4
|
|
||||||
%true = OpConstantTrue %bool
|
%true = OpConstantTrue %bool
|
||||||
%17 = OpConstantComposite %v4bool %true %true %true %true
|
|
||||||
%_ptr_Function_bool = OpTypePointer Function %bool
|
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||||
%20 = OpConstantNull %bool
|
%17 = OpConstantNull %bool
|
||||||
%21 = OpTypeFunction %v4float
|
%18 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%all_986c7b = OpFunction %void None %9
|
%all_986c7b = OpFunction %void None %9
|
||||||
%12 = OpLabel
|
%12 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_bool Function %20
|
%res = OpVariable %_ptr_Function_bool Function %17
|
||||||
%13 = OpAll %bool %17
|
OpStore %res %true
|
||||||
OpStore %res %13
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %21
|
%vertex_main_inner = OpFunction %v4float None %18
|
||||||
%23 = OpLabel
|
%20 = OpLabel
|
||||||
%24 = OpFunctionCall %void %all_986c7b
|
%21 = OpFunctionCall %void %all_986c7b
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %9
|
%vertex_main = OpFunction %void None %9
|
||||||
%26 = OpLabel
|
%23 = OpLabel
|
||||||
%27 = OpFunctionCall %v4float %vertex_main_inner
|
%24 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %27
|
OpStore %value %24
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %9
|
%fragment_main = OpFunction %void None %9
|
||||||
|
%27 = OpLabel
|
||||||
|
%28 = OpFunctionCall %void %all_986c7b
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
||||||
|
%compute_main = OpFunction %void None %9
|
||||||
%30 = OpLabel
|
%30 = OpLabel
|
||||||
%31 = OpFunctionCall %void %all_986c7b
|
%31 = OpFunctionCall %void %all_986c7b
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %9
|
|
||||||
%33 = OpLabel
|
|
||||||
%34 = OpFunctionCall %void %all_986c7b
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
void all_bd2dba() {
|
void all_bd2dba() {
|
||||||
bool res = all((true).xxx);
|
bool res = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
struct tint_symbol {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
void all_bd2dba() {
|
void all_bd2dba() {
|
||||||
bool res = all((true).xxx);
|
bool res = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
struct tint_symbol {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#version 310 es
|
#version 310 es
|
||||||
|
|
||||||
void all_bd2dba() {
|
void all_bd2dba() {
|
||||||
bool res = all(bvec3(true));
|
bool res = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
vec4 vertex_main() {
|
vec4 vertex_main() {
|
||||||
@ -21,7 +21,7 @@ void main() {
|
|||||||
precision mediump float;
|
precision mediump float;
|
||||||
|
|
||||||
void all_bd2dba() {
|
void all_bd2dba() {
|
||||||
bool res = all(bvec3(true));
|
bool res = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void fragment_main() {
|
void fragment_main() {
|
||||||
@ -35,7 +35,7 @@ void main() {
|
|||||||
#version 310 es
|
#version 310 es
|
||||||
|
|
||||||
void all_bd2dba() {
|
void all_bd2dba() {
|
||||||
bool res = all(bvec3(true));
|
bool res = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void compute_main() {
|
void compute_main() {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
void all_bd2dba() {
|
void all_bd2dba() {
|
||||||
bool res = all(bool3(true));
|
bool res = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
struct tint_symbol {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 35
|
; Bound: 32
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
@ -31,39 +31,36 @@
|
|||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%9 = OpTypeFunction %void
|
%9 = OpTypeFunction %void
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%v3bool = OpTypeVector %bool 3
|
|
||||||
%true = OpConstantTrue %bool
|
%true = OpConstantTrue %bool
|
||||||
%17 = OpConstantComposite %v3bool %true %true %true
|
|
||||||
%_ptr_Function_bool = OpTypePointer Function %bool
|
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||||
%20 = OpConstantNull %bool
|
%17 = OpConstantNull %bool
|
||||||
%21 = OpTypeFunction %v4float
|
%18 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%all_bd2dba = OpFunction %void None %9
|
%all_bd2dba = OpFunction %void None %9
|
||||||
%12 = OpLabel
|
%12 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_bool Function %20
|
%res = OpVariable %_ptr_Function_bool Function %17
|
||||||
%13 = OpAll %bool %17
|
OpStore %res %true
|
||||||
OpStore %res %13
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %21
|
%vertex_main_inner = OpFunction %v4float None %18
|
||||||
%23 = OpLabel
|
%20 = OpLabel
|
||||||
%24 = OpFunctionCall %void %all_bd2dba
|
%21 = OpFunctionCall %void %all_bd2dba
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %9
|
%vertex_main = OpFunction %void None %9
|
||||||
%26 = OpLabel
|
%23 = OpLabel
|
||||||
%27 = OpFunctionCall %v4float %vertex_main_inner
|
%24 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %27
|
OpStore %value %24
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %9
|
%fragment_main = OpFunction %void None %9
|
||||||
|
%27 = OpLabel
|
||||||
|
%28 = OpFunctionCall %void %all_bd2dba
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
||||||
|
%compute_main = OpFunction %void None %9
|
||||||
%30 = OpLabel
|
%30 = OpLabel
|
||||||
%31 = OpFunctionCall %void %all_bd2dba
|
%31 = OpFunctionCall %void %all_bd2dba
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %9
|
|
||||||
%33 = OpLabel
|
|
||||||
%34 = OpFunctionCall %void %all_bd2dba
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
void all_f46790() {
|
void all_f46790() {
|
||||||
bool res = all((true).xx);
|
bool res = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
struct tint_symbol {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
void all_f46790() {
|
void all_f46790() {
|
||||||
bool res = all((true).xx);
|
bool res = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
struct tint_symbol {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#version 310 es
|
#version 310 es
|
||||||
|
|
||||||
void all_f46790() {
|
void all_f46790() {
|
||||||
bool res = all(bvec2(true));
|
bool res = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
vec4 vertex_main() {
|
vec4 vertex_main() {
|
||||||
@ -21,7 +21,7 @@ void main() {
|
|||||||
precision mediump float;
|
precision mediump float;
|
||||||
|
|
||||||
void all_f46790() {
|
void all_f46790() {
|
||||||
bool res = all(bvec2(true));
|
bool res = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void fragment_main() {
|
void fragment_main() {
|
||||||
@ -35,7 +35,7 @@ void main() {
|
|||||||
#version 310 es
|
#version 310 es
|
||||||
|
|
||||||
void all_f46790() {
|
void all_f46790() {
|
||||||
bool res = all(bvec2(true));
|
bool res = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void compute_main() {
|
void compute_main() {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
void all_f46790() {
|
void all_f46790() {
|
||||||
bool res = all(bool2(true));
|
bool res = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tint_symbol {
|
struct tint_symbol {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 35
|
; Bound: 32
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
@ -31,39 +31,36 @@
|
|||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%9 = OpTypeFunction %void
|
%9 = OpTypeFunction %void
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%v2bool = OpTypeVector %bool 2
|
|
||||||
%true = OpConstantTrue %bool
|
%true = OpConstantTrue %bool
|
||||||
%17 = OpConstantComposite %v2bool %true %true
|
|
||||||
%_ptr_Function_bool = OpTypePointer Function %bool
|
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||||
%20 = OpConstantNull %bool
|
%17 = OpConstantNull %bool
|
||||||
%21 = OpTypeFunction %v4float
|
%18 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%all_f46790 = OpFunction %void None %9
|
%all_f46790 = OpFunction %void None %9
|
||||||
%12 = OpLabel
|
%12 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_bool Function %20
|
%res = OpVariable %_ptr_Function_bool Function %17
|
||||||
%13 = OpAll %bool %17
|
OpStore %res %true
|
||||||
OpStore %res %13
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %21
|
%vertex_main_inner = OpFunction %v4float None %18
|
||||||
%23 = OpLabel
|
%20 = OpLabel
|
||||||
%24 = OpFunctionCall %void %all_f46790
|
%21 = OpFunctionCall %void %all_f46790
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %9
|
%vertex_main = OpFunction %void None %9
|
||||||
%26 = OpLabel
|
%23 = OpLabel
|
||||||
%27 = OpFunctionCall %v4float %vertex_main_inner
|
%24 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %27
|
OpStore %value %24
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %9
|
%fragment_main = OpFunction %void None %9
|
||||||
|
%27 = OpLabel
|
||||||
|
%28 = OpFunctionCall %void %all_f46790
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
||||||
|
%compute_main = OpFunction %void None %9
|
||||||
%30 = OpLabel
|
%30 = OpLabel
|
||||||
%31 = OpFunctionCall %void %all_f46790
|
%31 = OpFunctionCall %void %all_f46790
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %9
|
|
||||||
%33 = OpLabel
|
|
||||||
%34 = OpFunctionCall %void %all_f46790
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user