mirror of
https://github.com/gfx-rs/wgpu.git
synced 2026-04-22 03:02:01 -04:00
add more tests for operators
This commit is contained in:
@@ -670,7 +670,6 @@ impl super::Validator {
|
||||
Some(Sk::Uint) | Some(Sk::Sint) | Some(Sk::Float) => true,
|
||||
Some(Sk::Bool) | None => false,
|
||||
};
|
||||
//TODO: should we be more restrictive here? I.e. expect scalar only to the left.
|
||||
let types_match = match (left_inner, right_inner) {
|
||||
(&Ti::Scalar { kind: kind1, .. }, &Ti::Scalar { kind: kind2, .. })
|
||||
| (&Ti::Vector { kind: kind1, .. }, &Ti::Scalar { kind: kind2, .. })
|
||||
|
||||
@@ -28,11 +28,6 @@ fn splat() -> vec4<f32> {
|
||||
return a.xyxy + vec4<f32>(b);
|
||||
}
|
||||
|
||||
fn unary() -> i32 {
|
||||
let a = 1;
|
||||
if !true { return a; } else { return ~a; };
|
||||
}
|
||||
|
||||
fn bool_cast(x: vec3<f32>) -> vec3<f32> {
|
||||
let y = vec3<bool>(x);
|
||||
return vec3<f32>(y);
|
||||
@@ -76,52 +71,203 @@ fn constructors() -> f32 {
|
||||
return foo.a.x;
|
||||
}
|
||||
|
||||
fn modulo() {
|
||||
// Modulo operator on float scalar or vector must be converted to mod function for GLSL
|
||||
let a = 1 % 1;
|
||||
let b = 1.0 % 1.0;
|
||||
let c = vec3<i32>(1) % vec3<i32>(1);
|
||||
let d = vec3<f32>(1.0) % vec3<f32>(1.0);
|
||||
}
|
||||
|
||||
fn scalar_times_matrix() {
|
||||
let model = mat4x4<f32>(
|
||||
vec4<f32>(1.0, 0.0, 0.0, 0.0),
|
||||
vec4<f32>(0.0, 1.0, 0.0, 0.0),
|
||||
vec4<f32>(0.0, 0.0, 1.0, 0.0),
|
||||
vec4<f32>(0.0, 0.0, 0.0, 1.0),
|
||||
);
|
||||
|
||||
let assertion: mat4x4<f32> = 2.0 * model;
|
||||
}
|
||||
|
||||
fn logical() {
|
||||
let a = true | false;
|
||||
let b = true & false;
|
||||
// unary
|
||||
let _ = !true;
|
||||
// let _ = !vec2(true);
|
||||
|
||||
// binary
|
||||
let _ = true || false;
|
||||
let _ = true && false;
|
||||
let _ = true | false;
|
||||
let _ = vec3(true) | vec3(false);
|
||||
let _ = true & false;
|
||||
let _ = vec4(true) & vec4(false);
|
||||
}
|
||||
|
||||
fn binary_assignment() {
|
||||
fn arithmetic() {
|
||||
// unary
|
||||
let _ = -1;
|
||||
let _ = -1.0;
|
||||
let _ = -vec2(1);
|
||||
let _ = -vec2(1.0);
|
||||
|
||||
// binary
|
||||
// Addition
|
||||
let _ = 2 + 1;
|
||||
let _ = 2u + 1u;
|
||||
let _ = 2.0 + 1.0;
|
||||
let _ = vec2(2) + vec2(1);
|
||||
let _ = vec3(2u) + vec3(1u);
|
||||
let _ = vec4(2.0) + vec4(1.0);
|
||||
|
||||
// Subtraction
|
||||
let _ = 2 - 1;
|
||||
let _ = 2u - 1u;
|
||||
let _ = 2.0 - 1.0;
|
||||
let _ = vec2(2) - vec2(1);
|
||||
let _ = vec3(2u) - vec3(1u);
|
||||
let _ = vec4(2.0) - vec4(1.0);
|
||||
|
||||
// Multiplication
|
||||
let _ = 2 * 1;
|
||||
let _ = 2u * 1u;
|
||||
let _ = 2.0 * 1.0;
|
||||
let _ = vec2(2) * vec2(1);
|
||||
let _ = vec3(2u) * vec3(1u);
|
||||
let _ = vec4(2.0) * vec4(1.0);
|
||||
|
||||
// Division
|
||||
let _ = 2 / 1;
|
||||
let _ = 2u / 1u;
|
||||
let _ = 2.0 / 1.0;
|
||||
let _ = vec2(2) / vec2(1);
|
||||
let _ = vec3(2u) / vec3(1u);
|
||||
let _ = vec4(2.0) / vec4(1.0);
|
||||
|
||||
// Remainder
|
||||
let _ = 2 % 1;
|
||||
let _ = 2u % 1u;
|
||||
let _ = 2.0 % 1.0;
|
||||
let _ = vec2(2) % vec2(1);
|
||||
let _ = vec3(2u) % vec3(1u);
|
||||
let _ = vec4(2.0) % vec4(1.0);
|
||||
|
||||
// Binary arithmetic expressions with mixed scalar and vector operands
|
||||
let _ = vec2(2) + 1;
|
||||
let _ = 2 + vec2(1);
|
||||
|
||||
let _ = vec2(2) - 1;
|
||||
let _ = 2 - vec2(1);
|
||||
|
||||
let _ = vec2(2) * 1;
|
||||
let _ = 2 * vec2(1);
|
||||
|
||||
let _ = vec2(2) / 1;
|
||||
let _ = 2 / vec2(1);
|
||||
|
||||
let _ = vec2(2) % 1;
|
||||
let _ = 2 % vec2(1);
|
||||
|
||||
// Matrix arithmetic
|
||||
// let _ = mat3x3<f32>() + mat3x3<f32>();
|
||||
// let _ = mat3x3<f32>() - mat3x3<f32>();
|
||||
|
||||
let _ = mat3x3<f32>() * 1.0;
|
||||
let _ = 2.0 * mat3x3<f32>();
|
||||
|
||||
let _ = mat4x3<f32>() * vec4(1.0);
|
||||
let _ = vec3(2.0) * mat4x3<f32>();
|
||||
|
||||
let _ = mat4x3<f32>() * mat3x4<f32>();
|
||||
}
|
||||
|
||||
fn bit() {
|
||||
// unary
|
||||
let _ = ~1;
|
||||
let _ = ~1u;
|
||||
// let _ = ~vec2(1);
|
||||
// let _ = ~vec3(1u);
|
||||
|
||||
// binary
|
||||
let _ = 2 | 1;
|
||||
let _ = 2u | 1u;
|
||||
let _ = vec2(2) | vec2(1);
|
||||
let _ = vec3(2u) | vec3(1u);
|
||||
|
||||
let _ = 2 & 1;
|
||||
let _ = 2u & 1u;
|
||||
let _ = vec2(2) & vec2(1);
|
||||
let _ = vec3(2u) & vec3(1u);
|
||||
|
||||
let _ = 2 ^ 1;
|
||||
let _ = 2u ^ 1u;
|
||||
let _ = vec2(2) ^ vec2(1);
|
||||
let _ = vec3(2u) ^ vec3(1u);
|
||||
|
||||
let _ = 2 << 1u;
|
||||
let _ = 2u << 1u;
|
||||
let _ = vec2(2) << vec2(1u);
|
||||
let _ = vec3(2u) << vec3(1u);
|
||||
|
||||
let _ = 2 >> 1u;
|
||||
let _ = 2u >> 1u;
|
||||
let _ = vec2(2) >> vec2(1u);
|
||||
let _ = vec3(2u) >> vec3(1u);
|
||||
}
|
||||
|
||||
fn comparison() {
|
||||
let _ = 2 == 1;
|
||||
let _ = 2u == 1u;
|
||||
let _ = 2.0 == 1.0;
|
||||
let _ = vec2(2) == vec2(1);
|
||||
let _ = vec3(2u) == vec3(1u);
|
||||
let _ = vec4(2.0) == vec4(1.0);
|
||||
|
||||
let _ = 2 != 1;
|
||||
let _ = 2u != 1u;
|
||||
let _ = 2.0 != 1.0;
|
||||
let _ = vec2(2) != vec2(1);
|
||||
let _ = vec3(2u) != vec3(1u);
|
||||
let _ = vec4(2.0) != vec4(1.0);
|
||||
|
||||
let _ = 2 < 1;
|
||||
let _ = 2u < 1u;
|
||||
let _ = 2.0 < 1.0;
|
||||
let _ = vec2(2) < vec2(1);
|
||||
let _ = vec3(2u) < vec3(1u);
|
||||
let _ = vec4(2.0) < vec4(1.0);
|
||||
|
||||
let _ = 2 <= 1;
|
||||
let _ = 2u <= 1u;
|
||||
let _ = 2.0 <= 1.0;
|
||||
let _ = vec2(2) <= vec2(1);
|
||||
let _ = vec3(2u) <= vec3(1u);
|
||||
let _ = vec4(2.0) <= vec4(1.0);
|
||||
|
||||
let _ = 2 > 1;
|
||||
let _ = 2u > 1u;
|
||||
let _ = 2.0 > 1.0;
|
||||
let _ = vec2(2) > vec2(1);
|
||||
let _ = vec3(2u) > vec3(1u);
|
||||
let _ = vec4(2.0) > vec4(1.0);
|
||||
|
||||
let _ = 2 >= 1;
|
||||
let _ = 2u >= 1u;
|
||||
let _ = 2.0 >= 1.0;
|
||||
let _ = vec2(2) >= vec2(1);
|
||||
let _ = vec3(2u) >= vec3(1u);
|
||||
let _ = vec4(2.0) >= vec4(1.0);
|
||||
}
|
||||
|
||||
fn assignment() {
|
||||
var a = 1;
|
||||
|
||||
a += 1;
|
||||
a -= 1;
|
||||
a *= a;
|
||||
a /= a;
|
||||
a %= 1;
|
||||
a ^= 0;
|
||||
a &= 0;
|
||||
a |= 0;
|
||||
a ^= 0;
|
||||
a <<= 2u;
|
||||
a >>= 1u;
|
||||
|
||||
a++;
|
||||
a--;
|
||||
}
|
||||
|
||||
@stage(compute) @workgroup_size(1)
|
||||
fn main() {
|
||||
let a = builtins();
|
||||
let b = splat();
|
||||
let c = unary();
|
||||
let d = bool_cast(v_f32_one.xyz);
|
||||
let e = constructors();
|
||||
modulo();
|
||||
scalar_times_matrix();
|
||||
let _ = builtins();
|
||||
let _ = splat();
|
||||
let _ = bool_cast(v_f32_one.xyz);
|
||||
let _ = constructors();
|
||||
|
||||
logical();
|
||||
binary_assignment();
|
||||
arithmetic();
|
||||
bit();
|
||||
comparison();
|
||||
assignment();
|
||||
}
|
||||
|
||||
@@ -28,14 +28,6 @@ vec4 splat() {
|
||||
return (a_1.xyxy + vec4(b));
|
||||
}
|
||||
|
||||
int unary() {
|
||||
if ((! true)) {
|
||||
return 1;
|
||||
} else {
|
||||
return (~ 1);
|
||||
}
|
||||
}
|
||||
|
||||
vec3 bool_cast(vec3 x) {
|
||||
bvec3 y = bvec3(x);
|
||||
return vec3(y);
|
||||
@@ -64,24 +56,131 @@ float constructors() {
|
||||
return _e70;
|
||||
}
|
||||
|
||||
void modulo() {
|
||||
int a_2 = (1 % 1);
|
||||
float b_1 = (1.0 - 1.0 * trunc(1.0 / 1.0));
|
||||
ivec3 c = (ivec3(1) % ivec3(1));
|
||||
vec3 d = (vec3(1.0) - vec3(1.0) * trunc(vec3(1.0) / vec3(1.0)));
|
||||
}
|
||||
|
||||
void scalar_times_matrix() {
|
||||
mat4x4 model = mat4x4(vec4(1.0, 0.0, 0.0, 0.0), vec4(0.0, 1.0, 0.0, 0.0), vec4(0.0, 0.0, 1.0, 0.0), vec4(0.0, 0.0, 0.0, 1.0));
|
||||
mat4x4 assertion = (2.0 * model);
|
||||
}
|
||||
|
||||
void logical() {
|
||||
bool a_3 = (true || false);
|
||||
bool b_2 = (true && false);
|
||||
bool unnamed_11 = (! true);
|
||||
bool unnamed_12 = (true || false);
|
||||
bool unnamed_13 = (true && false);
|
||||
bool unnamed_14 = (true || false);
|
||||
bvec3 unnamed_15 = (bvec3(true) | bvec3(false));
|
||||
bool unnamed_16 = (true && false);
|
||||
bvec4 unnamed_17 = (bvec4(true) & bvec4(false));
|
||||
}
|
||||
|
||||
void binary_assignment() {
|
||||
void arithmetic() {
|
||||
ivec2 unnamed_18 = (- ivec2(1));
|
||||
vec2 unnamed_19 = (- vec2(1.0));
|
||||
int unnamed_20 = (2 + 1);
|
||||
uint unnamed_21 = (2u + 1u);
|
||||
float unnamed_22 = (2.0 + 1.0);
|
||||
ivec2 unnamed_23 = (ivec2(2) + ivec2(1));
|
||||
uvec3 unnamed_24 = (uvec3(2u) + uvec3(1u));
|
||||
vec4 unnamed_25 = (vec4(2.0) + vec4(1.0));
|
||||
int unnamed_26 = (2 - 1);
|
||||
uint unnamed_27 = (2u - 1u);
|
||||
float unnamed_28 = (2.0 - 1.0);
|
||||
ivec2 unnamed_29 = (ivec2(2) - ivec2(1));
|
||||
uvec3 unnamed_30 = (uvec3(2u) - uvec3(1u));
|
||||
vec4 unnamed_31 = (vec4(2.0) - vec4(1.0));
|
||||
int unnamed_32 = (2 * 1);
|
||||
uint unnamed_33 = (2u * 1u);
|
||||
float unnamed_34 = (2.0 * 1.0);
|
||||
ivec2 unnamed_35 = (ivec2(2) * ivec2(1));
|
||||
uvec3 unnamed_36 = (uvec3(2u) * uvec3(1u));
|
||||
vec4 unnamed_37 = (vec4(2.0) * vec4(1.0));
|
||||
int unnamed_38 = (2 / 1);
|
||||
uint unnamed_39 = (2u / 1u);
|
||||
float unnamed_40 = (2.0 / 1.0);
|
||||
ivec2 unnamed_41 = (ivec2(2) / ivec2(1));
|
||||
uvec3 unnamed_42 = (uvec3(2u) / uvec3(1u));
|
||||
vec4 unnamed_43 = (vec4(2.0) / vec4(1.0));
|
||||
int unnamed_44 = (2 % 1);
|
||||
uint unnamed_45 = (2u % 1u);
|
||||
float unnamed_46 = (2.0 - 1.0 * trunc(2.0 / 1.0));
|
||||
ivec2 unnamed_47 = (ivec2(2) % ivec2(1));
|
||||
uvec3 unnamed_48 = (uvec3(2u) % uvec3(1u));
|
||||
vec4 unnamed_49 = (vec4(2.0) - vec4(1.0) * trunc(vec4(2.0) / vec4(1.0)));
|
||||
ivec2 unnamed_50 = (ivec2(2) + ivec2(1));
|
||||
ivec2 unnamed_51 = (ivec2(2) + ivec2(1));
|
||||
ivec2 unnamed_52 = (ivec2(2) - ivec2(1));
|
||||
ivec2 unnamed_53 = (ivec2(2) - ivec2(1));
|
||||
ivec2 unnamed_54 = (ivec2(2) * 1);
|
||||
ivec2 unnamed_55 = (2 * ivec2(1));
|
||||
ivec2 unnamed_56 = (ivec2(2) / ivec2(1));
|
||||
ivec2 unnamed_57 = (ivec2(2) / ivec2(1));
|
||||
ivec2 unnamed_58 = (ivec2(2) % ivec2(1));
|
||||
ivec2 unnamed_59 = (ivec2(2) % ivec2(1));
|
||||
mat3x3 unnamed_60 = (mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)) * 1.0);
|
||||
mat3x3 unnamed_61 = (2.0 * mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)));
|
||||
vec3 unnamed_62 = (mat4x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)) * vec4(1.0));
|
||||
vec4 unnamed_63 = (vec3(2.0) * mat4x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)));
|
||||
mat3x3 unnamed_64 = (mat4x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)) * mat3x4(vec4(0.0, 0.0, 0.0, 0.0), vec4(0.0, 0.0, 0.0, 0.0), vec4(0.0, 0.0, 0.0, 0.0)));
|
||||
}
|
||||
|
||||
void bit() {
|
||||
int unnamed_65 = (~ 1);
|
||||
uint unnamed_66 = (~ 1u);
|
||||
int unnamed_67 = (2 | 1);
|
||||
uint unnamed_68 = (2u | 1u);
|
||||
ivec2 unnamed_69 = (ivec2(2) | ivec2(1));
|
||||
uvec3 unnamed_70 = (uvec3(2u) | uvec3(1u));
|
||||
int unnamed_71 = (2 & 1);
|
||||
uint unnamed_72 = (2u & 1u);
|
||||
ivec2 unnamed_73 = (ivec2(2) & ivec2(1));
|
||||
uvec3 unnamed_74 = (uvec3(2u) & uvec3(1u));
|
||||
int unnamed_75 = (2 ^ 1);
|
||||
uint unnamed_76 = (2u ^ 1u);
|
||||
ivec2 unnamed_77 = (ivec2(2) ^ ivec2(1));
|
||||
uvec3 unnamed_78 = (uvec3(2u) ^ uvec3(1u));
|
||||
int unnamed_79 = (2 << 1u);
|
||||
uint unnamed_80 = (2u << 1u);
|
||||
ivec2 unnamed_81 = (ivec2(2) << uvec2(1u));
|
||||
uvec3 unnamed_82 = (uvec3(2u) << uvec3(1u));
|
||||
int unnamed_83 = (2 >> 1u);
|
||||
uint unnamed_84 = (2u >> 1u);
|
||||
ivec2 unnamed_85 = (ivec2(2) >> uvec2(1u));
|
||||
uvec3 unnamed_86 = (uvec3(2u) >> uvec3(1u));
|
||||
}
|
||||
|
||||
void comparison() {
|
||||
bool unnamed_87 = (2 == 1);
|
||||
bool unnamed_88 = (2u == 1u);
|
||||
bool unnamed_89 = (2.0 == 1.0);
|
||||
bvec2 unnamed_90 = equal(ivec2(2), ivec2(1));
|
||||
bvec3 unnamed_91 = equal(uvec3(2u), uvec3(1u));
|
||||
bvec4 unnamed_92 = equal(vec4(2.0), vec4(1.0));
|
||||
bool unnamed_93 = (2 != 1);
|
||||
bool unnamed_94 = (2u != 1u);
|
||||
bool unnamed_95 = (2.0 != 1.0);
|
||||
bvec2 unnamed_96 = notEqual(ivec2(2), ivec2(1));
|
||||
bvec3 unnamed_97 = notEqual(uvec3(2u), uvec3(1u));
|
||||
bvec4 unnamed_98 = notEqual(vec4(2.0), vec4(1.0));
|
||||
bool unnamed_99 = (2 < 1);
|
||||
bool unnamed_100 = (2u < 1u);
|
||||
bool unnamed_101 = (2.0 < 1.0);
|
||||
bvec2 unnamed_102 = lessThan(ivec2(2), ivec2(1));
|
||||
bvec3 unnamed_103 = lessThan(uvec3(2u), uvec3(1u));
|
||||
bvec4 unnamed_104 = lessThan(vec4(2.0), vec4(1.0));
|
||||
bool unnamed_105 = (2 <= 1);
|
||||
bool unnamed_106 = (2u <= 1u);
|
||||
bool unnamed_107 = (2.0 <= 1.0);
|
||||
bvec2 unnamed_108 = lessThanEqual(ivec2(2), ivec2(1));
|
||||
bvec3 unnamed_109 = lessThanEqual(uvec3(2u), uvec3(1u));
|
||||
bvec4 unnamed_110 = lessThanEqual(vec4(2.0), vec4(1.0));
|
||||
bool unnamed_111 = (2 > 1);
|
||||
bool unnamed_112 = (2u > 1u);
|
||||
bool unnamed_113 = (2.0 > 1.0);
|
||||
bvec2 unnamed_114 = greaterThan(ivec2(2), ivec2(1));
|
||||
bvec3 unnamed_115 = greaterThan(uvec3(2u), uvec3(1u));
|
||||
bvec4 unnamed_116 = greaterThan(vec4(2.0), vec4(1.0));
|
||||
bool unnamed_117 = (2 >= 1);
|
||||
bool unnamed_118 = (2u >= 1u);
|
||||
bool unnamed_119 = (2.0 >= 1.0);
|
||||
bvec2 unnamed_120 = greaterThanEqual(ivec2(2), ivec2(1));
|
||||
bvec3 unnamed_121 = greaterThanEqual(uvec3(2u), uvec3(1u));
|
||||
bvec4 unnamed_122 = greaterThanEqual(vec4(2.0), vec4(1.0));
|
||||
}
|
||||
|
||||
void assignment() {
|
||||
int a = 1;
|
||||
int _e6 = a;
|
||||
a = (_e6 + 1);
|
||||
@@ -96,26 +195,32 @@ void binary_assignment() {
|
||||
int _e18 = a;
|
||||
a = (_e18 % 1);
|
||||
int _e21 = a;
|
||||
a = (_e21 ^ 0);
|
||||
a = (_e21 & 0);
|
||||
int _e24 = a;
|
||||
a = (_e24 & 0);
|
||||
a = (_e24 | 0);
|
||||
int _e27 = a;
|
||||
a = (_e27 + 1);
|
||||
a = (_e27 ^ 0);
|
||||
int _e30 = a;
|
||||
a = (_e30 - 1);
|
||||
a = (_e30 << 2u);
|
||||
int _e33 = a;
|
||||
a = (_e33 >> 1u);
|
||||
int _e36 = a;
|
||||
a = (_e36 + 1);
|
||||
int _e39 = a;
|
||||
a = (_e39 - 1);
|
||||
return;
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec4 _e4 = builtins();
|
||||
vec4 _e5 = splat();
|
||||
int _e6 = unary();
|
||||
vec3 _e8 = bool_cast(vec4(1.0, 1.0, 1.0, 1.0).xyz);
|
||||
float _e9 = constructors();
|
||||
modulo();
|
||||
scalar_times_matrix();
|
||||
vec3 _e7 = bool_cast(vec4(1.0, 1.0, 1.0, 1.0).xyz);
|
||||
float _e8 = constructors();
|
||||
logical();
|
||||
binary_assignment();
|
||||
arithmetic();
|
||||
bit();
|
||||
comparison();
|
||||
assignment();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -43,15 +43,6 @@ float4 splat()
|
||||
return (a_1.xyxy + float4(b));
|
||||
}
|
||||
|
||||
int unary()
|
||||
{
|
||||
if (!true) {
|
||||
return 1;
|
||||
} else {
|
||||
return ~1;
|
||||
}
|
||||
}
|
||||
|
||||
float3 bool_cast(float3 x)
|
||||
{
|
||||
bool3 y = bool3(x);
|
||||
@@ -91,27 +82,135 @@ float constructors()
|
||||
return _expr70;
|
||||
}
|
||||
|
||||
void modulo()
|
||||
{
|
||||
int a_2 = (1 % 1);
|
||||
float b_1 = (1.0 % 1.0);
|
||||
int3 c = (int3(1.xxx) % int3(1.xxx));
|
||||
float3 d = (float3(1.0.xxx) % float3(1.0.xxx));
|
||||
}
|
||||
|
||||
void scalar_times_matrix()
|
||||
{
|
||||
float4x4 model = float4x4(float4(1.0, 0.0, 0.0, 0.0), float4(0.0, 1.0, 0.0, 0.0), float4(0.0, 0.0, 1.0, 0.0), float4(0.0, 0.0, 0.0, 1.0));
|
||||
float4x4 assertion = mul(model, 2.0);
|
||||
}
|
||||
|
||||
void logical()
|
||||
{
|
||||
bool a_3 = (true | false);
|
||||
bool b_2 = (true & false);
|
||||
bool unnamed_11 = !true;
|
||||
bool unnamed_12 = (true || false);
|
||||
bool unnamed_13 = (true && false);
|
||||
bool unnamed_14 = (true | false);
|
||||
bool3 unnamed_15 = (bool3(true.xxx) | bool3(false.xxx));
|
||||
bool unnamed_16 = (true & false);
|
||||
bool4 unnamed_17 = (bool4(true.xxxx) & bool4(false.xxxx));
|
||||
}
|
||||
|
||||
void binary_assignment()
|
||||
void arithmetic()
|
||||
{
|
||||
int2 unnamed_18 = -int2(1.xx);
|
||||
float2 unnamed_19 = -float2(1.0.xx);
|
||||
int unnamed_20 = (2 + 1);
|
||||
uint unnamed_21 = (2u + 1u);
|
||||
float unnamed_22 = (2.0 + 1.0);
|
||||
int2 unnamed_23 = (int2(2.xx) + int2(1.xx));
|
||||
uint3 unnamed_24 = (uint3(2u.xxx) + uint3(1u.xxx));
|
||||
float4 unnamed_25 = (float4(2.0.xxxx) + float4(1.0.xxxx));
|
||||
int unnamed_26 = (2 - 1);
|
||||
uint unnamed_27 = (2u - 1u);
|
||||
float unnamed_28 = (2.0 - 1.0);
|
||||
int2 unnamed_29 = (int2(2.xx) - int2(1.xx));
|
||||
uint3 unnamed_30 = (uint3(2u.xxx) - uint3(1u.xxx));
|
||||
float4 unnamed_31 = (float4(2.0.xxxx) - float4(1.0.xxxx));
|
||||
int unnamed_32 = (2 * 1);
|
||||
uint unnamed_33 = (2u * 1u);
|
||||
float unnamed_34 = (2.0 * 1.0);
|
||||
int2 unnamed_35 = (int2(2.xx) * int2(1.xx));
|
||||
uint3 unnamed_36 = (uint3(2u.xxx) * uint3(1u.xxx));
|
||||
float4 unnamed_37 = (float4(2.0.xxxx) * float4(1.0.xxxx));
|
||||
int unnamed_38 = (2 / 1);
|
||||
uint unnamed_39 = (2u / 1u);
|
||||
float unnamed_40 = (2.0 / 1.0);
|
||||
int2 unnamed_41 = (int2(2.xx) / int2(1.xx));
|
||||
uint3 unnamed_42 = (uint3(2u.xxx) / uint3(1u.xxx));
|
||||
float4 unnamed_43 = (float4(2.0.xxxx) / float4(1.0.xxxx));
|
||||
int unnamed_44 = (2 % 1);
|
||||
uint unnamed_45 = (2u % 1u);
|
||||
float unnamed_46 = (2.0 % 1.0);
|
||||
int2 unnamed_47 = (int2(2.xx) % int2(1.xx));
|
||||
uint3 unnamed_48 = (uint3(2u.xxx) % uint3(1u.xxx));
|
||||
float4 unnamed_49 = (float4(2.0.xxxx) % float4(1.0.xxxx));
|
||||
int2 unnamed_50 = (int2(2.xx) + int2(1.xx));
|
||||
int2 unnamed_51 = (int2(2.xx) + int2(1.xx));
|
||||
int2 unnamed_52 = (int2(2.xx) - int2(1.xx));
|
||||
int2 unnamed_53 = (int2(2.xx) - int2(1.xx));
|
||||
int2 unnamed_54 = (int2(2.xx) * 1);
|
||||
int2 unnamed_55 = (2 * int2(1.xx));
|
||||
int2 unnamed_56 = (int2(2.xx) / int2(1.xx));
|
||||
int2 unnamed_57 = (int2(2.xx) / int2(1.xx));
|
||||
int2 unnamed_58 = (int2(2.xx) % int2(1.xx));
|
||||
int2 unnamed_59 = (int2(2.xx) % int2(1.xx));
|
||||
float3x3 unnamed_60 = mul(1.0, float3x3(float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0)));
|
||||
float3x3 unnamed_61 = mul(float3x3(float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0)), 2.0);
|
||||
float3 unnamed_62 = mul(float4(1.0.xxxx), float4x3(float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0)));
|
||||
float4 unnamed_63 = mul(float4x3(float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0)), float3(2.0.xxx));
|
||||
float3x3 unnamed_64 = mul(float3x4(float4(0.0, 0.0, 0.0, 0.0), float4(0.0, 0.0, 0.0, 0.0), float4(0.0, 0.0, 0.0, 0.0)), float4x3(float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0)));
|
||||
}
|
||||
|
||||
void bit()
|
||||
{
|
||||
int unnamed_65 = ~1;
|
||||
uint unnamed_66 = ~1u;
|
||||
int unnamed_67 = (2 | 1);
|
||||
uint unnamed_68 = (2u | 1u);
|
||||
int2 unnamed_69 = (int2(2.xx) | int2(1.xx));
|
||||
uint3 unnamed_70 = (uint3(2u.xxx) | uint3(1u.xxx));
|
||||
int unnamed_71 = (2 & 1);
|
||||
uint unnamed_72 = (2u & 1u);
|
||||
int2 unnamed_73 = (int2(2.xx) & int2(1.xx));
|
||||
uint3 unnamed_74 = (uint3(2u.xxx) & uint3(1u.xxx));
|
||||
int unnamed_75 = (2 ^ 1);
|
||||
uint unnamed_76 = (2u ^ 1u);
|
||||
int2 unnamed_77 = (int2(2.xx) ^ int2(1.xx));
|
||||
uint3 unnamed_78 = (uint3(2u.xxx) ^ uint3(1u.xxx));
|
||||
int unnamed_79 = (2 << 1u);
|
||||
uint unnamed_80 = (2u << 1u);
|
||||
int2 unnamed_81 = (int2(2.xx) << uint2(1u.xx));
|
||||
uint3 unnamed_82 = (uint3(2u.xxx) << uint3(1u.xxx));
|
||||
int unnamed_83 = (2 >> 1u);
|
||||
uint unnamed_84 = (2u >> 1u);
|
||||
int2 unnamed_85 = (int2(2.xx) >> uint2(1u.xx));
|
||||
uint3 unnamed_86 = (uint3(2u.xxx) >> uint3(1u.xxx));
|
||||
}
|
||||
|
||||
void comparison()
|
||||
{
|
||||
bool unnamed_87 = (2 == 1);
|
||||
bool unnamed_88 = (2u == 1u);
|
||||
bool unnamed_89 = (2.0 == 1.0);
|
||||
bool2 unnamed_90 = (int2(2.xx) == int2(1.xx));
|
||||
bool3 unnamed_91 = (uint3(2u.xxx) == uint3(1u.xxx));
|
||||
bool4 unnamed_92 = (float4(2.0.xxxx) == float4(1.0.xxxx));
|
||||
bool unnamed_93 = (2 != 1);
|
||||
bool unnamed_94 = (2u != 1u);
|
||||
bool unnamed_95 = (2.0 != 1.0);
|
||||
bool2 unnamed_96 = (int2(2.xx) != int2(1.xx));
|
||||
bool3 unnamed_97 = (uint3(2u.xxx) != uint3(1u.xxx));
|
||||
bool4 unnamed_98 = (float4(2.0.xxxx) != float4(1.0.xxxx));
|
||||
bool unnamed_99 = (2 < 1);
|
||||
bool unnamed_100 = (2u < 1u);
|
||||
bool unnamed_101 = (2.0 < 1.0);
|
||||
bool2 unnamed_102 = (int2(2.xx) < int2(1.xx));
|
||||
bool3 unnamed_103 = (uint3(2u.xxx) < uint3(1u.xxx));
|
||||
bool4 unnamed_104 = (float4(2.0.xxxx) < float4(1.0.xxxx));
|
||||
bool unnamed_105 = (2 <= 1);
|
||||
bool unnamed_106 = (2u <= 1u);
|
||||
bool unnamed_107 = (2.0 <= 1.0);
|
||||
bool2 unnamed_108 = (int2(2.xx) <= int2(1.xx));
|
||||
bool3 unnamed_109 = (uint3(2u.xxx) <= uint3(1u.xxx));
|
||||
bool4 unnamed_110 = (float4(2.0.xxxx) <= float4(1.0.xxxx));
|
||||
bool unnamed_111 = (2 > 1);
|
||||
bool unnamed_112 = (2u > 1u);
|
||||
bool unnamed_113 = (2.0 > 1.0);
|
||||
bool2 unnamed_114 = (int2(2.xx) > int2(1.xx));
|
||||
bool3 unnamed_115 = (uint3(2u.xxx) > uint3(1u.xxx));
|
||||
bool4 unnamed_116 = (float4(2.0.xxxx) > float4(1.0.xxxx));
|
||||
bool unnamed_117 = (2 >= 1);
|
||||
bool unnamed_118 = (2u >= 1u);
|
||||
bool unnamed_119 = (2.0 >= 1.0);
|
||||
bool2 unnamed_120 = (int2(2.xx) >= int2(1.xx));
|
||||
bool3 unnamed_121 = (uint3(2u.xxx) >= uint3(1u.xxx));
|
||||
bool4 unnamed_122 = (float4(2.0.xxxx) >= float4(1.0.xxxx));
|
||||
}
|
||||
|
||||
void assignment()
|
||||
{
|
||||
int a = 1;
|
||||
|
||||
@@ -128,13 +227,19 @@ void binary_assignment()
|
||||
int _expr18 = a;
|
||||
a = (_expr18 % 1);
|
||||
int _expr21 = a;
|
||||
a = (_expr21 ^ 0);
|
||||
a = (_expr21 & 0);
|
||||
int _expr24 = a;
|
||||
a = (_expr24 & 0);
|
||||
a = (_expr24 | 0);
|
||||
int _expr27 = a;
|
||||
a = (_expr27 + 1);
|
||||
a = (_expr27 ^ 0);
|
||||
int _expr30 = a;
|
||||
a = (_expr30 - 1);
|
||||
a = (_expr30 << 2u);
|
||||
int _expr33 = a;
|
||||
a = (_expr33 >> 1u);
|
||||
int _expr36 = a;
|
||||
a = (_expr36 + 1);
|
||||
int _expr39 = a;
|
||||
a = (_expr39 - 1);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -143,12 +248,12 @@ void main()
|
||||
{
|
||||
const float4 _e4 = builtins();
|
||||
const float4 _e5 = splat();
|
||||
const int _e6 = unary();
|
||||
const float3 _e8 = bool_cast(float4(1.0, 1.0, 1.0, 1.0).xyz);
|
||||
const float _e9 = constructors();
|
||||
modulo();
|
||||
scalar_times_matrix();
|
||||
const float3 _e7 = bool_cast(float4(1.0, 1.0, 1.0, 1.0).xyz);
|
||||
const float _e8 = constructors();
|
||||
logical();
|
||||
binary_assignment();
|
||||
arithmetic();
|
||||
bit();
|
||||
comparison();
|
||||
assignment();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -24,6 +24,10 @@ constant metal::float2x2 const_type_7_ = {const_type_6_, const_type_6_};
|
||||
constant metal::float4 const_type = {0.0, 0.0, 0.0, 0.0};
|
||||
constant Foo const_Foo = {const_type, 0};
|
||||
constant type_12 const_type_12_ = {const_Foo, const_Foo, const_Foo};
|
||||
constant metal::float3 const_type_4_ = {0.0, 0.0, 0.0};
|
||||
constant metal::float3x3 const_type_14_ = {const_type_4_, const_type_4_, const_type_4_};
|
||||
constant metal::float4x3 const_type_15_ = {const_type_4_, const_type_4_, const_type_4_, const_type_4_};
|
||||
constant metal::float3x4 const_type_16_ = {const_type, const_type, const_type};
|
||||
|
||||
metal::float4 builtins(
|
||||
) {
|
||||
@@ -45,15 +49,6 @@ metal::float4 splat(
|
||||
return a_1.xyxy + static_cast<metal::float4>(b);
|
||||
}
|
||||
|
||||
int unary(
|
||||
) {
|
||||
if (!true) {
|
||||
return 1;
|
||||
} else {
|
||||
return ~1;
|
||||
}
|
||||
}
|
||||
|
||||
metal::float3 bool_cast(
|
||||
metal::float3 x
|
||||
) {
|
||||
@@ -85,27 +80,135 @@ float constructors(
|
||||
return _e70;
|
||||
}
|
||||
|
||||
void modulo(
|
||||
) {
|
||||
int a_2 = 1 % 1;
|
||||
float b_1 = metal::fmod(1.0, 1.0);
|
||||
metal::int3 c = metal::int3(1) % metal::int3(1);
|
||||
metal::float3 d = metal::fmod(metal::float3(1.0), metal::float3(1.0));
|
||||
}
|
||||
|
||||
void scalar_times_matrix(
|
||||
) {
|
||||
metal::float4x4 model = metal::float4x4(metal::float4(1.0, 0.0, 0.0, 0.0), metal::float4(0.0, 1.0, 0.0, 0.0), metal::float4(0.0, 0.0, 1.0, 0.0), metal::float4(0.0, 0.0, 0.0, 1.0));
|
||||
metal::float4x4 assertion = 2.0 * model;
|
||||
}
|
||||
|
||||
void logical(
|
||||
) {
|
||||
bool a_3 = true | false;
|
||||
bool b_2 = true & false;
|
||||
bool unnamed_11 = !true;
|
||||
bool unnamed_12 = true || false;
|
||||
bool unnamed_13 = true && false;
|
||||
bool unnamed_14 = true | false;
|
||||
metal::bool3 unnamed_15 = metal::bool3(true) | metal::bool3(false);
|
||||
bool unnamed_16 = true & false;
|
||||
metal::bool4 unnamed_17 = metal::bool4(true) & metal::bool4(false);
|
||||
}
|
||||
|
||||
void binary_assignment(
|
||||
void arithmetic(
|
||||
) {
|
||||
metal::int2 unnamed_18 = -metal::int2(1);
|
||||
metal::float2 unnamed_19 = -metal::float2(1.0);
|
||||
int unnamed_20 = 2 + 1;
|
||||
uint unnamed_21 = 2u + 1u;
|
||||
float unnamed_22 = 2.0 + 1.0;
|
||||
metal::int2 unnamed_23 = metal::int2(2) + metal::int2(1);
|
||||
metal::uint3 unnamed_24 = metal::uint3(2u) + metal::uint3(1u);
|
||||
metal::float4 unnamed_25 = metal::float4(2.0) + metal::float4(1.0);
|
||||
int unnamed_26 = 2 - 1;
|
||||
uint unnamed_27 = 2u - 1u;
|
||||
float unnamed_28 = 2.0 - 1.0;
|
||||
metal::int2 unnamed_29 = metal::int2(2) - metal::int2(1);
|
||||
metal::uint3 unnamed_30 = metal::uint3(2u) - metal::uint3(1u);
|
||||
metal::float4 unnamed_31 = metal::float4(2.0) - metal::float4(1.0);
|
||||
int unnamed_32 = 2 * 1;
|
||||
uint unnamed_33 = 2u * 1u;
|
||||
float unnamed_34 = 2.0 * 1.0;
|
||||
metal::int2 unnamed_35 = metal::int2(2) * metal::int2(1);
|
||||
metal::uint3 unnamed_36 = metal::uint3(2u) * metal::uint3(1u);
|
||||
metal::float4 unnamed_37 = metal::float4(2.0) * metal::float4(1.0);
|
||||
int unnamed_38 = 2 / 1;
|
||||
uint unnamed_39 = 2u / 1u;
|
||||
float unnamed_40 = 2.0 / 1.0;
|
||||
metal::int2 unnamed_41 = metal::int2(2) / metal::int2(1);
|
||||
metal::uint3 unnamed_42 = metal::uint3(2u) / metal::uint3(1u);
|
||||
metal::float4 unnamed_43 = metal::float4(2.0) / metal::float4(1.0);
|
||||
int unnamed_44 = 2 % 1;
|
||||
uint unnamed_45 = 2u % 1u;
|
||||
float unnamed_46 = metal::fmod(2.0, 1.0);
|
||||
metal::int2 unnamed_47 = metal::int2(2) % metal::int2(1);
|
||||
metal::uint3 unnamed_48 = metal::uint3(2u) % metal::uint3(1u);
|
||||
metal::float4 unnamed_49 = metal::fmod(metal::float4(2.0), metal::float4(1.0));
|
||||
metal::int2 unnamed_50 = metal::int2(2) + metal::int2(1);
|
||||
metal::int2 unnamed_51 = metal::int2(2) + metal::int2(1);
|
||||
metal::int2 unnamed_52 = metal::int2(2) - metal::int2(1);
|
||||
metal::int2 unnamed_53 = metal::int2(2) - metal::int2(1);
|
||||
metal::int2 unnamed_54 = metal::int2(2) * 1;
|
||||
metal::int2 unnamed_55 = 2 * metal::int2(1);
|
||||
metal::int2 unnamed_56 = metal::int2(2) / metal::int2(1);
|
||||
metal::int2 unnamed_57 = metal::int2(2) / metal::int2(1);
|
||||
metal::int2 unnamed_58 = metal::int2(2) % metal::int2(1);
|
||||
metal::int2 unnamed_59 = metal::int2(2) % metal::int2(1);
|
||||
metal::float3x3 unnamed_60 = const_type_14_ * 1.0;
|
||||
metal::float3x3 unnamed_61 = 2.0 * const_type_14_;
|
||||
metal::float3 unnamed_62 = const_type_15_ * metal::float4(1.0);
|
||||
metal::float4 unnamed_63 = metal::float3(2.0) * const_type_15_;
|
||||
metal::float3x3 unnamed_64 = const_type_15_ * const_type_16_;
|
||||
}
|
||||
|
||||
void bit(
|
||||
) {
|
||||
int unnamed_65 = ~1;
|
||||
uint unnamed_66 = ~1u;
|
||||
int unnamed_67 = 2 | 1;
|
||||
uint unnamed_68 = 2u | 1u;
|
||||
metal::int2 unnamed_69 = metal::int2(2) | metal::int2(1);
|
||||
metal::uint3 unnamed_70 = metal::uint3(2u) | metal::uint3(1u);
|
||||
int unnamed_71 = 2 & 1;
|
||||
uint unnamed_72 = 2u & 1u;
|
||||
metal::int2 unnamed_73 = metal::int2(2) & metal::int2(1);
|
||||
metal::uint3 unnamed_74 = metal::uint3(2u) & metal::uint3(1u);
|
||||
int unnamed_75 = 2 ^ 1;
|
||||
uint unnamed_76 = 2u ^ 1u;
|
||||
metal::int2 unnamed_77 = metal::int2(2) ^ metal::int2(1);
|
||||
metal::uint3 unnamed_78 = metal::uint3(2u) ^ metal::uint3(1u);
|
||||
int unnamed_79 = 2 << 1u;
|
||||
uint unnamed_80 = 2u << 1u;
|
||||
metal::int2 unnamed_81 = metal::int2(2) << metal::uint2(1u);
|
||||
metal::uint3 unnamed_82 = metal::uint3(2u) << metal::uint3(1u);
|
||||
int unnamed_83 = 2 >> 1u;
|
||||
uint unnamed_84 = 2u >> 1u;
|
||||
metal::int2 unnamed_85 = metal::int2(2) >> metal::uint2(1u);
|
||||
metal::uint3 unnamed_86 = metal::uint3(2u) >> metal::uint3(1u);
|
||||
}
|
||||
|
||||
void comparison(
|
||||
) {
|
||||
bool unnamed_87 = 2 == 1;
|
||||
bool unnamed_88 = 2u == 1u;
|
||||
bool unnamed_89 = 2.0 == 1.0;
|
||||
metal::bool2 unnamed_90 = metal::int2(2) == metal::int2(1);
|
||||
metal::bool3 unnamed_91 = metal::uint3(2u) == metal::uint3(1u);
|
||||
metal::bool4 unnamed_92 = metal::float4(2.0) == metal::float4(1.0);
|
||||
bool unnamed_93 = 2 != 1;
|
||||
bool unnamed_94 = 2u != 1u;
|
||||
bool unnamed_95 = 2.0 != 1.0;
|
||||
metal::bool2 unnamed_96 = metal::int2(2) != metal::int2(1);
|
||||
metal::bool3 unnamed_97 = metal::uint3(2u) != metal::uint3(1u);
|
||||
metal::bool4 unnamed_98 = metal::float4(2.0) != metal::float4(1.0);
|
||||
bool unnamed_99 = 2 < 1;
|
||||
bool unnamed_100 = 2u < 1u;
|
||||
bool unnamed_101 = 2.0 < 1.0;
|
||||
metal::bool2 unnamed_102 = metal::int2(2) < metal::int2(1);
|
||||
metal::bool3 unnamed_103 = metal::uint3(2u) < metal::uint3(1u);
|
||||
metal::bool4 unnamed_104 = metal::float4(2.0) < metal::float4(1.0);
|
||||
bool unnamed_105 = 2 <= 1;
|
||||
bool unnamed_106 = 2u <= 1u;
|
||||
bool unnamed_107 = 2.0 <= 1.0;
|
||||
metal::bool2 unnamed_108 = metal::int2(2) <= metal::int2(1);
|
||||
metal::bool3 unnamed_109 = metal::uint3(2u) <= metal::uint3(1u);
|
||||
metal::bool4 unnamed_110 = metal::float4(2.0) <= metal::float4(1.0);
|
||||
bool unnamed_111 = 2 > 1;
|
||||
bool unnamed_112 = 2u > 1u;
|
||||
bool unnamed_113 = 2.0 > 1.0;
|
||||
metal::bool2 unnamed_114 = metal::int2(2) > metal::int2(1);
|
||||
metal::bool3 unnamed_115 = metal::uint3(2u) > metal::uint3(1u);
|
||||
metal::bool4 unnamed_116 = metal::float4(2.0) > metal::float4(1.0);
|
||||
bool unnamed_117 = 2 >= 1;
|
||||
bool unnamed_118 = 2u >= 1u;
|
||||
bool unnamed_119 = 2.0 >= 1.0;
|
||||
metal::bool2 unnamed_120 = metal::int2(2) >= metal::int2(1);
|
||||
metal::bool3 unnamed_121 = metal::uint3(2u) >= metal::uint3(1u);
|
||||
metal::bool4 unnamed_122 = metal::float4(2.0) >= metal::float4(1.0);
|
||||
}
|
||||
|
||||
void assignment(
|
||||
) {
|
||||
int a = 1;
|
||||
int _e6 = a;
|
||||
@@ -121,13 +224,19 @@ void binary_assignment(
|
||||
int _e18 = a;
|
||||
a = _e18 % 1;
|
||||
int _e21 = a;
|
||||
a = _e21 ^ 0;
|
||||
a = _e21 & 0;
|
||||
int _e24 = a;
|
||||
a = _e24 & 0;
|
||||
a = _e24 | 0;
|
||||
int _e27 = a;
|
||||
a = _e27 + 1;
|
||||
a = _e27 ^ 0;
|
||||
int _e30 = a;
|
||||
a = _e30 - 1;
|
||||
a = _e30 << 2u;
|
||||
int _e33 = a;
|
||||
a = _e33 >> 1u;
|
||||
int _e36 = a;
|
||||
a = _e36 + 1;
|
||||
int _e39 = a;
|
||||
a = _e39 - 1;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -135,12 +244,12 @@ kernel void main_(
|
||||
) {
|
||||
metal::float4 _e4 = builtins();
|
||||
metal::float4 _e5 = splat();
|
||||
int _e6 = unary();
|
||||
metal::float3 _e8 = bool_cast(v_f32_one.xyz);
|
||||
float _e9 = constructors();
|
||||
modulo();
|
||||
scalar_times_matrix();
|
||||
metal::float3 _e7 = bool_cast(v_f32_one.xyz);
|
||||
float _e8 = constructors();
|
||||
logical();
|
||||
binary_assignment();
|
||||
arithmetic();
|
||||
bit();
|
||||
comparison();
|
||||
assignment();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
; SPIR-V
|
||||
; Version: 1.1
|
||||
; Generator: rspirv
|
||||
; Bound: 214
|
||||
; Bound: 434
|
||||
OpCapability Shader
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint GLCompute %202 "main"
|
||||
OpExecutionMode %202 LocalSize 1 1 1
|
||||
OpMemberDecorate %27 0 Offset 0
|
||||
OpMemberDecorate %27 1 Offset 16
|
||||
OpDecorate %32 ArrayStride 32
|
||||
OpDecorate %33 ArrayStride 4
|
||||
OpEntryPoint GLCompute %422 "main"
|
||||
OpExecutionMode %422 LocalSize 1 1 1
|
||||
OpMemberDecorate %31 0 Offset 0
|
||||
OpMemberDecorate %31 1 Offset 16
|
||||
OpDecorate %36 ArrayStride 32
|
||||
OpDecorate %37 ArrayStride 4
|
||||
%2 = OpTypeVoid
|
||||
%4 = OpTypeFloat 32
|
||||
%3 = OpConstant %4 1.0
|
||||
@@ -32,241 +32,460 @@ OpDecorate %33 ArrayStride 4
|
||||
%19 = OpConstant %20 0
|
||||
%21 = OpConstant %8 3
|
||||
%22 = OpConstant %20 4
|
||||
%23 = OpTypeVector %4 4
|
||||
%24 = OpTypeVector %8 4
|
||||
%25 = OpTypeVector %10 4
|
||||
%26 = OpTypeVector %4 3
|
||||
%27 = OpTypeStruct %23 %8
|
||||
%28 = OpTypeVector %4 2
|
||||
%29 = OpTypeMatrix %28 2
|
||||
%30 = OpTypeMatrix %23 4
|
||||
%31 = OpTypeVector %20 2
|
||||
%32 = OpTypeArray %27 %21
|
||||
%33 = OpTypeArray %8 %22
|
||||
%34 = OpConstantComposite %23 %3 %3 %3 %3
|
||||
%35 = OpConstantComposite %23 %5 %5 %5 %5
|
||||
%36 = OpConstantComposite %23 %6 %6 %6 %6
|
||||
%37 = OpConstantComposite %24 %7 %7 %7 %7
|
||||
%38 = OpConstantComposite %31 %19 %19
|
||||
%39 = OpConstantComposite %28 %5 %5
|
||||
%40 = OpConstantComposite %29 %39 %39
|
||||
%41 = OpConstantComposite %23 %5 %5 %5 %5
|
||||
%42 = OpConstantComposite %27 %41 %11
|
||||
%43 = OpConstantComposite %32 %42 %42 %42
|
||||
%46 = OpTypeFunction %23
|
||||
%87 = OpTypeFunction %8
|
||||
%94 = OpConstantNull %8
|
||||
%98 = OpTypeFunction %26 %26
|
||||
%100 = OpTypeVector %10 3
|
||||
%107 = OpTypePointer Function %27
|
||||
%109 = OpTypePointer Function %10
|
||||
%111 = OpTypePointer Function %8
|
||||
%113 = OpTypePointer Function %20
|
||||
%115 = OpTypePointer Function %4
|
||||
%117 = OpTypePointer Function %31
|
||||
%119 = OpTypePointer Function %29
|
||||
%121 = OpTypePointer Function %32
|
||||
%126 = OpTypePointer Function %33
|
||||
%129 = OpTypeFunction %4
|
||||
%146 = OpTypePointer Function %23
|
||||
%147 = OpTypePointer Function %4
|
||||
%152 = OpTypeFunction %2
|
||||
%156 = OpTypeVector %8 3
|
||||
%45 = OpFunction %23 None %46
|
||||
%44 = OpLabel
|
||||
OpBranch %47
|
||||
%47 = OpLabel
|
||||
%48 = OpSelect %8 %9 %7 %11
|
||||
%50 = OpCompositeConstruct %25 %9 %9 %9 %9
|
||||
%49 = OpSelect %23 %50 %34 %35
|
||||
%51 = OpCompositeConstruct %25 %12 %12 %12 %12
|
||||
%52 = OpSelect %23 %51 %35 %34
|
||||
%53 = OpExtInst %23 %1 FMix %35 %34 %36
|
||||
%55 = OpCompositeConstruct %23 %13 %13 %13 %13
|
||||
%54 = OpExtInst %23 %1 FMix %35 %34 %55
|
||||
%56 = OpCompositeExtract %8 %37 0
|
||||
%57 = OpBitcast %4 %56
|
||||
%58 = OpBitcast %23 %37
|
||||
%59 = OpConvertFToS %24 %35
|
||||
%60 = OpCompositeConstruct %24 %48 %48 %48 %48
|
||||
%61 = OpIAdd %24 %60 %59
|
||||
%62 = OpConvertSToF %23 %61
|
||||
%63 = OpFAdd %23 %62 %49
|
||||
%64 = OpFAdd %23 %63 %53
|
||||
%65 = OpFAdd %23 %64 %54
|
||||
%66 = OpCompositeConstruct %23 %57 %57 %57 %57
|
||||
%67 = OpFAdd %23 %65 %66
|
||||
%68 = OpFAdd %23 %67 %58
|
||||
OpReturnValue %68
|
||||
%23 = OpConstant %8 4294967295
|
||||
%24 = OpConstant %4 -1.0
|
||||
%25 = OpConstant %20 2
|
||||
%26 = OpConstant %20 1
|
||||
%27 = OpTypeVector %4 4
|
||||
%28 = OpTypeVector %8 4
|
||||
%29 = OpTypeVector %10 4
|
||||
%30 = OpTypeVector %4 3
|
||||
%31 = OpTypeStruct %27 %8
|
||||
%32 = OpTypeVector %4 2
|
||||
%33 = OpTypeMatrix %32 2
|
||||
%34 = OpTypeMatrix %27 4
|
||||
%35 = OpTypeVector %20 2
|
||||
%36 = OpTypeArray %31 %21
|
||||
%37 = OpTypeArray %8 %22
|
||||
%38 = OpTypeMatrix %30 3
|
||||
%39 = OpTypeMatrix %30 4
|
||||
%40 = OpTypeMatrix %27 3
|
||||
%41 = OpConstantComposite %27 %3 %3 %3 %3
|
||||
%42 = OpConstantComposite %27 %5 %5 %5 %5
|
||||
%43 = OpConstantComposite %27 %6 %6 %6 %6
|
||||
%44 = OpConstantComposite %28 %7 %7 %7 %7
|
||||
%45 = OpConstantComposite %35 %19 %19
|
||||
%46 = OpConstantComposite %32 %5 %5
|
||||
%47 = OpConstantComposite %33 %46 %46
|
||||
%48 = OpConstantComposite %27 %5 %5 %5 %5
|
||||
%49 = OpConstantComposite %31 %48 %11
|
||||
%50 = OpConstantComposite %36 %49 %49 %49
|
||||
%51 = OpConstantComposite %30 %5 %5 %5
|
||||
%52 = OpConstantComposite %38 %51 %51 %51
|
||||
%53 = OpConstantComposite %39 %51 %51 %51 %51
|
||||
%54 = OpConstantComposite %40 %48 %48 %48
|
||||
%57 = OpTypeFunction %27
|
||||
%99 = OpTypeFunction %30 %30
|
||||
%101 = OpTypeVector %10 3
|
||||
%108 = OpTypePointer Function %31
|
||||
%110 = OpTypePointer Function %10
|
||||
%112 = OpTypePointer Function %8
|
||||
%114 = OpTypePointer Function %20
|
||||
%116 = OpTypePointer Function %4
|
||||
%118 = OpTypePointer Function %35
|
||||
%120 = OpTypePointer Function %33
|
||||
%122 = OpTypePointer Function %36
|
||||
%127 = OpTypePointer Function %37
|
||||
%130 = OpTypeFunction %4
|
||||
%147 = OpTypePointer Function %27
|
||||
%148 = OpTypePointer Function %4
|
||||
%153 = OpTypeFunction %2
|
||||
%169 = OpTypeVector %8 2
|
||||
%180 = OpTypeVector %20 3
|
||||
%323 = OpTypeVector %10 2
|
||||
%56 = OpFunction %27 None %57
|
||||
%55 = OpLabel
|
||||
OpBranch %58
|
||||
%58 = OpLabel
|
||||
%59 = OpSelect %8 %9 %7 %11
|
||||
%61 = OpCompositeConstruct %29 %9 %9 %9 %9
|
||||
%60 = OpSelect %27 %61 %41 %42
|
||||
%62 = OpCompositeConstruct %29 %12 %12 %12 %12
|
||||
%63 = OpSelect %27 %62 %42 %41
|
||||
%64 = OpExtInst %27 %1 FMix %42 %41 %43
|
||||
%66 = OpCompositeConstruct %27 %13 %13 %13 %13
|
||||
%65 = OpExtInst %27 %1 FMix %42 %41 %66
|
||||
%67 = OpCompositeExtract %8 %44 0
|
||||
%68 = OpBitcast %4 %67
|
||||
%69 = OpBitcast %27 %44
|
||||
%70 = OpConvertFToS %28 %42
|
||||
%71 = OpCompositeConstruct %28 %59 %59 %59 %59
|
||||
%72 = OpIAdd %28 %71 %70
|
||||
%73 = OpConvertSToF %27 %72
|
||||
%74 = OpFAdd %27 %73 %60
|
||||
%75 = OpFAdd %27 %74 %64
|
||||
%76 = OpFAdd %27 %75 %65
|
||||
%77 = OpCompositeConstruct %27 %68 %68 %68 %68
|
||||
%78 = OpFAdd %27 %76 %77
|
||||
%79 = OpFAdd %27 %78 %69
|
||||
OpReturnValue %79
|
||||
OpFunctionEnd
|
||||
%70 = OpFunction %23 None %46
|
||||
%69 = OpLabel
|
||||
OpBranch %71
|
||||
%71 = OpLabel
|
||||
%72 = OpCompositeConstruct %28 %14 %14
|
||||
%73 = OpCompositeConstruct %28 %3 %3
|
||||
%74 = OpFAdd %28 %73 %72
|
||||
%75 = OpCompositeConstruct %28 %15 %15
|
||||
%76 = OpFSub %28 %74 %75
|
||||
%77 = OpCompositeConstruct %28 %16 %16
|
||||
%78 = OpFDiv %28 %76 %77
|
||||
%79 = OpCompositeConstruct %24 %17 %17 %17 %17
|
||||
%80 = OpCompositeConstruct %24 %18 %18 %18 %18
|
||||
%81 = OpSMod %24 %79 %80
|
||||
%82 = OpVectorShuffle %23 %78 %78 0 1 0 1
|
||||
%83 = OpConvertSToF %23 %81
|
||||
%84 = OpFAdd %23 %82 %83
|
||||
OpReturnValue %84
|
||||
%81 = OpFunction %27 None %57
|
||||
%80 = OpLabel
|
||||
OpBranch %82
|
||||
%82 = OpLabel
|
||||
%83 = OpCompositeConstruct %32 %14 %14
|
||||
%84 = OpCompositeConstruct %32 %3 %3
|
||||
%85 = OpFAdd %32 %84 %83
|
||||
%86 = OpCompositeConstruct %32 %15 %15
|
||||
%87 = OpFSub %32 %85 %86
|
||||
%88 = OpCompositeConstruct %32 %16 %16
|
||||
%89 = OpFDiv %32 %87 %88
|
||||
%90 = OpCompositeConstruct %28 %17 %17 %17 %17
|
||||
%91 = OpCompositeConstruct %28 %18 %18 %18 %18
|
||||
%92 = OpSMod %28 %90 %91
|
||||
%93 = OpVectorShuffle %27 %89 %89 0 1 0 1
|
||||
%94 = OpConvertSToF %27 %92
|
||||
%95 = OpFAdd %27 %93 %94
|
||||
OpReturnValue %95
|
||||
OpFunctionEnd
|
||||
%86 = OpFunction %8 None %87
|
||||
%85 = OpLabel
|
||||
OpBranch %88
|
||||
%88 = OpLabel
|
||||
%89 = OpLogicalNot %10 %9
|
||||
OpSelectionMerge %90 None
|
||||
OpBranchConditional %89 %91 %92
|
||||
%91 = OpLabel
|
||||
OpReturnValue %7
|
||||
%92 = OpLabel
|
||||
%93 = OpNot %8 %7
|
||||
OpReturnValue %93
|
||||
%90 = OpLabel
|
||||
OpReturnValue %94
|
||||
%98 = OpFunction %30 None %99
|
||||
%97 = OpFunctionParameter %30
|
||||
%96 = OpLabel
|
||||
OpBranch %100
|
||||
%100 = OpLabel
|
||||
%102 = OpCompositeConstruct %30 %5 %5 %5
|
||||
%103 = OpFUnordNotEqual %101 %97 %102
|
||||
%104 = OpCompositeConstruct %30 %5 %5 %5
|
||||
%105 = OpCompositeConstruct %30 %3 %3 %3
|
||||
%106 = OpSelect %30 %103 %105 %104
|
||||
OpReturnValue %106
|
||||
OpFunctionEnd
|
||||
%97 = OpFunction %26 None %98
|
||||
%96 = OpFunctionParameter %26
|
||||
%95 = OpLabel
|
||||
OpBranch %99
|
||||
%99 = OpLabel
|
||||
%101 = OpCompositeConstruct %26 %5 %5 %5
|
||||
%102 = OpFUnordNotEqual %100 %96 %101
|
||||
%103 = OpCompositeConstruct %26 %5 %5 %5
|
||||
%104 = OpCompositeConstruct %26 %3 %3 %3
|
||||
%105 = OpSelect %26 %102 %104 %103
|
||||
OpReturnValue %105
|
||||
OpFunctionEnd
|
||||
%128 = OpFunction %4 None %129
|
||||
%127 = OpLabel
|
||||
%123 = OpVariable %117 Function
|
||||
%118 = OpVariable %119 Function %40
|
||||
%112 = OpVariable %113 Function %19
|
||||
%106 = OpVariable %107 Function
|
||||
%124 = OpVariable %119 Function
|
||||
%120 = OpVariable %121 Function %43
|
||||
%114 = OpVariable %115 Function %5
|
||||
%108 = OpVariable %109 Function %12
|
||||
%125 = OpVariable %126 Function
|
||||
%122 = OpVariable %107 Function %42
|
||||
%116 = OpVariable %117 Function %38
|
||||
%110 = OpVariable %111 Function %11
|
||||
OpBranch %130
|
||||
%130 = OpLabel
|
||||
%131 = OpCompositeConstruct %23 %3 %3 %3 %3
|
||||
%132 = OpCompositeConstruct %27 %131 %7
|
||||
OpStore %106 %132
|
||||
%133 = OpCompositeConstruct %28 %3 %5
|
||||
%134 = OpCompositeConstruct %28 %5 %3
|
||||
%135 = OpCompositeConstruct %29 %133 %134
|
||||
%136 = OpCompositeConstruct %23 %3 %5 %5 %5
|
||||
%137 = OpCompositeConstruct %23 %5 %3 %5 %5
|
||||
%138 = OpCompositeConstruct %23 %5 %5 %3 %5
|
||||
%139 = OpCompositeConstruct %23 %5 %5 %5 %3
|
||||
%140 = OpCompositeConstruct %30 %136 %137 %138 %139
|
||||
%141 = OpCompositeConstruct %31 %19 %19
|
||||
OpStore %123 %141
|
||||
%142 = OpCompositeConstruct %28 %5 %5
|
||||
%143 = OpCompositeConstruct %28 %5 %5
|
||||
%144 = OpCompositeConstruct %29 %142 %143
|
||||
OpStore %124 %144
|
||||
%145 = OpCompositeConstruct %33 %11 %7 %18 %21
|
||||
%129 = OpFunction %4 None %130
|
||||
%128 = OpLabel
|
||||
%124 = OpVariable %118 Function
|
||||
%119 = OpVariable %120 Function %47
|
||||
%113 = OpVariable %114 Function %19
|
||||
%107 = OpVariable %108 Function
|
||||
%125 = OpVariable %120 Function
|
||||
%121 = OpVariable %122 Function %50
|
||||
%115 = OpVariable %116 Function %5
|
||||
%109 = OpVariable %110 Function %12
|
||||
%126 = OpVariable %127 Function
|
||||
%123 = OpVariable %108 Function %49
|
||||
%117 = OpVariable %118 Function %45
|
||||
%111 = OpVariable %112 Function %11
|
||||
OpBranch %131
|
||||
%131 = OpLabel
|
||||
%132 = OpCompositeConstruct %27 %3 %3 %3 %3
|
||||
%133 = OpCompositeConstruct %31 %132 %7
|
||||
OpStore %107 %133
|
||||
%134 = OpCompositeConstruct %32 %3 %5
|
||||
%135 = OpCompositeConstruct %32 %5 %3
|
||||
%136 = OpCompositeConstruct %33 %134 %135
|
||||
%137 = OpCompositeConstruct %27 %3 %5 %5 %5
|
||||
%138 = OpCompositeConstruct %27 %5 %3 %5 %5
|
||||
%139 = OpCompositeConstruct %27 %5 %5 %3 %5
|
||||
%140 = OpCompositeConstruct %27 %5 %5 %5 %3
|
||||
%141 = OpCompositeConstruct %34 %137 %138 %139 %140
|
||||
%142 = OpCompositeConstruct %35 %19 %19
|
||||
OpStore %124 %142
|
||||
%143 = OpCompositeConstruct %32 %5 %5
|
||||
%144 = OpCompositeConstruct %32 %5 %5
|
||||
%145 = OpCompositeConstruct %33 %143 %144
|
||||
OpStore %125 %145
|
||||
%148 = OpAccessChain %147 %106 %19 %19
|
||||
%149 = OpLoad %4 %148
|
||||
OpReturnValue %149
|
||||
%146 = OpCompositeConstruct %37 %11 %7 %18 %21
|
||||
OpStore %126 %146
|
||||
%149 = OpAccessChain %148 %107 %19 %19
|
||||
%150 = OpLoad %4 %149
|
||||
OpReturnValue %150
|
||||
OpFunctionEnd
|
||||
%151 = OpFunction %2 None %152
|
||||
%150 = OpLabel
|
||||
OpBranch %153
|
||||
%153 = OpLabel
|
||||
%154 = OpSMod %8 %7 %7
|
||||
%155 = OpFRem %4 %3 %3
|
||||
%157 = OpCompositeConstruct %156 %7 %7 %7
|
||||
%158 = OpCompositeConstruct %156 %7 %7 %7
|
||||
%159 = OpSMod %156 %157 %158
|
||||
%160 = OpCompositeConstruct %26 %3 %3 %3
|
||||
%161 = OpCompositeConstruct %26 %3 %3 %3
|
||||
%162 = OpFRem %26 %160 %161
|
||||
%152 = OpFunction %2 None %153
|
||||
%151 = OpLabel
|
||||
OpBranch %154
|
||||
%154 = OpLabel
|
||||
%155 = OpLogicalNot %10 %9
|
||||
%156 = OpLogicalOr %10 %9 %12
|
||||
%157 = OpLogicalAnd %10 %9 %12
|
||||
%158 = OpLogicalOr %10 %9 %12
|
||||
%159 = OpCompositeConstruct %101 %9 %9 %9
|
||||
%160 = OpCompositeConstruct %101 %12 %12 %12
|
||||
%161 = OpLogicalOr %101 %159 %160
|
||||
%162 = OpLogicalAnd %10 %9 %12
|
||||
%163 = OpCompositeConstruct %29 %9 %9 %9 %9
|
||||
%164 = OpCompositeConstruct %29 %12 %12 %12 %12
|
||||
%165 = OpLogicalAnd %29 %163 %164
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%164 = OpFunction %2 None %152
|
||||
%163 = OpLabel
|
||||
OpBranch %165
|
||||
%165 = OpLabel
|
||||
%166 = OpCompositeConstruct %23 %3 %5 %5 %5
|
||||
%167 = OpCompositeConstruct %23 %5 %3 %5 %5
|
||||
%168 = OpCompositeConstruct %23 %5 %5 %3 %5
|
||||
%169 = OpCompositeConstruct %23 %5 %5 %5 %3
|
||||
%170 = OpCompositeConstruct %30 %166 %167 %168 %169
|
||||
%171 = OpMatrixTimesScalar %30 %170 %14
|
||||
%167 = OpFunction %2 None %153
|
||||
%166 = OpLabel
|
||||
OpBranch %168
|
||||
%168 = OpLabel
|
||||
%170 = OpCompositeConstruct %169 %7 %7
|
||||
%171 = OpSNegate %169 %170
|
||||
%172 = OpCompositeConstruct %32 %3 %3
|
||||
%173 = OpFNegate %32 %172
|
||||
%174 = OpIAdd %8 %18 %7
|
||||
%175 = OpIAdd %20 %25 %26
|
||||
%176 = OpFAdd %4 %14 %3
|
||||
%177 = OpCompositeConstruct %169 %18 %18
|
||||
%178 = OpCompositeConstruct %169 %7 %7
|
||||
%179 = OpIAdd %169 %177 %178
|
||||
%181 = OpCompositeConstruct %180 %25 %25 %25
|
||||
%182 = OpCompositeConstruct %180 %26 %26 %26
|
||||
%183 = OpIAdd %180 %181 %182
|
||||
%184 = OpCompositeConstruct %27 %14 %14 %14 %14
|
||||
%185 = OpCompositeConstruct %27 %3 %3 %3 %3
|
||||
%186 = OpFAdd %27 %184 %185
|
||||
%187 = OpISub %8 %18 %7
|
||||
%188 = OpISub %20 %25 %26
|
||||
%189 = OpFSub %4 %14 %3
|
||||
%190 = OpCompositeConstruct %169 %18 %18
|
||||
%191 = OpCompositeConstruct %169 %7 %7
|
||||
%192 = OpISub %169 %190 %191
|
||||
%193 = OpCompositeConstruct %180 %25 %25 %25
|
||||
%194 = OpCompositeConstruct %180 %26 %26 %26
|
||||
%195 = OpISub %180 %193 %194
|
||||
%196 = OpCompositeConstruct %27 %14 %14 %14 %14
|
||||
%197 = OpCompositeConstruct %27 %3 %3 %3 %3
|
||||
%198 = OpFSub %27 %196 %197
|
||||
%199 = OpIMul %8 %18 %7
|
||||
%200 = OpIMul %20 %25 %26
|
||||
%201 = OpFMul %4 %14 %3
|
||||
%202 = OpCompositeConstruct %169 %18 %18
|
||||
%203 = OpCompositeConstruct %169 %7 %7
|
||||
%204 = OpIMul %169 %202 %203
|
||||
%205 = OpCompositeConstruct %180 %25 %25 %25
|
||||
%206 = OpCompositeConstruct %180 %26 %26 %26
|
||||
%207 = OpIMul %180 %205 %206
|
||||
%208 = OpCompositeConstruct %27 %14 %14 %14 %14
|
||||
%209 = OpCompositeConstruct %27 %3 %3 %3 %3
|
||||
%210 = OpFMul %27 %208 %209
|
||||
%211 = OpSDiv %8 %18 %7
|
||||
%212 = OpUDiv %20 %25 %26
|
||||
%213 = OpFDiv %4 %14 %3
|
||||
%214 = OpCompositeConstruct %169 %18 %18
|
||||
%215 = OpCompositeConstruct %169 %7 %7
|
||||
%216 = OpSDiv %169 %214 %215
|
||||
%217 = OpCompositeConstruct %180 %25 %25 %25
|
||||
%218 = OpCompositeConstruct %180 %26 %26 %26
|
||||
%219 = OpUDiv %180 %217 %218
|
||||
%220 = OpCompositeConstruct %27 %14 %14 %14 %14
|
||||
%221 = OpCompositeConstruct %27 %3 %3 %3 %3
|
||||
%222 = OpFDiv %27 %220 %221
|
||||
%223 = OpSMod %8 %18 %7
|
||||
%224 = OpUMod %20 %25 %26
|
||||
%225 = OpFRem %4 %14 %3
|
||||
%226 = OpCompositeConstruct %169 %18 %18
|
||||
%227 = OpCompositeConstruct %169 %7 %7
|
||||
%228 = OpSMod %169 %226 %227
|
||||
%229 = OpCompositeConstruct %180 %25 %25 %25
|
||||
%230 = OpCompositeConstruct %180 %26 %26 %26
|
||||
%231 = OpUMod %180 %229 %230
|
||||
%232 = OpCompositeConstruct %27 %14 %14 %14 %14
|
||||
%233 = OpCompositeConstruct %27 %3 %3 %3 %3
|
||||
%234 = OpFRem %27 %232 %233
|
||||
%235 = OpCompositeConstruct %169 %18 %18
|
||||
%236 = OpCompositeConstruct %169 %7 %7
|
||||
%237 = OpIAdd %169 %235 %236
|
||||
%238 = OpCompositeConstruct %169 %7 %7
|
||||
%239 = OpCompositeConstruct %169 %18 %18
|
||||
%240 = OpIAdd %169 %239 %238
|
||||
%241 = OpCompositeConstruct %169 %18 %18
|
||||
%242 = OpCompositeConstruct %169 %7 %7
|
||||
%243 = OpISub %169 %241 %242
|
||||
%244 = OpCompositeConstruct %169 %7 %7
|
||||
%245 = OpCompositeConstruct %169 %18 %18
|
||||
%246 = OpISub %169 %245 %244
|
||||
%247 = OpCompositeConstruct %169 %18 %18
|
||||
%248 = OpVectorTimesScalar %169 %247 %7
|
||||
%249 = OpCompositeConstruct %169 %7 %7
|
||||
%250 = OpVectorTimesScalar %169 %249 %18
|
||||
%251 = OpCompositeConstruct %169 %18 %18
|
||||
%252 = OpCompositeConstruct %169 %7 %7
|
||||
%253 = OpSDiv %169 %251 %252
|
||||
%254 = OpCompositeConstruct %169 %7 %7
|
||||
%255 = OpCompositeConstruct %169 %18 %18
|
||||
%256 = OpSDiv %169 %255 %254
|
||||
%257 = OpCompositeConstruct %169 %18 %18
|
||||
%258 = OpCompositeConstruct %169 %7 %7
|
||||
%259 = OpSMod %169 %257 %258
|
||||
%260 = OpCompositeConstruct %169 %7 %7
|
||||
%261 = OpCompositeConstruct %169 %18 %18
|
||||
%262 = OpSMod %169 %261 %260
|
||||
%263 = OpMatrixTimesScalar %38 %52 %3
|
||||
%264 = OpMatrixTimesScalar %38 %52 %14
|
||||
%265 = OpCompositeConstruct %27 %3 %3 %3 %3
|
||||
%266 = OpMatrixTimesVector %30 %53 %265
|
||||
%267 = OpCompositeConstruct %30 %14 %14 %14
|
||||
%268 = OpVectorTimesMatrix %27 %267 %53
|
||||
%269 = OpMatrixTimesMatrix %38 %53 %54
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%173 = OpFunction %2 None %152
|
||||
%172 = OpLabel
|
||||
OpBranch %174
|
||||
%174 = OpLabel
|
||||
%175 = OpLogicalOr %10 %9 %12
|
||||
%176 = OpLogicalAnd %10 %9 %12
|
||||
%271 = OpFunction %2 None %153
|
||||
%270 = OpLabel
|
||||
OpBranch %272
|
||||
%272 = OpLabel
|
||||
%273 = OpNot %8 %7
|
||||
%274 = OpNot %20 %26
|
||||
%275 = OpBitwiseOr %8 %18 %7
|
||||
%276 = OpBitwiseOr %20 %25 %26
|
||||
%277 = OpCompositeConstruct %169 %18 %18
|
||||
%278 = OpCompositeConstruct %169 %7 %7
|
||||
%279 = OpBitwiseOr %169 %277 %278
|
||||
%280 = OpCompositeConstruct %180 %25 %25 %25
|
||||
%281 = OpCompositeConstruct %180 %26 %26 %26
|
||||
%282 = OpBitwiseOr %180 %280 %281
|
||||
%283 = OpBitwiseAnd %8 %18 %7
|
||||
%284 = OpBitwiseAnd %20 %25 %26
|
||||
%285 = OpCompositeConstruct %169 %18 %18
|
||||
%286 = OpCompositeConstruct %169 %7 %7
|
||||
%287 = OpBitwiseAnd %169 %285 %286
|
||||
%288 = OpCompositeConstruct %180 %25 %25 %25
|
||||
%289 = OpCompositeConstruct %180 %26 %26 %26
|
||||
%290 = OpBitwiseAnd %180 %288 %289
|
||||
%291 = OpBitwiseXor %8 %18 %7
|
||||
%292 = OpBitwiseXor %20 %25 %26
|
||||
%293 = OpCompositeConstruct %169 %18 %18
|
||||
%294 = OpCompositeConstruct %169 %7 %7
|
||||
%295 = OpBitwiseXor %169 %293 %294
|
||||
%296 = OpCompositeConstruct %180 %25 %25 %25
|
||||
%297 = OpCompositeConstruct %180 %26 %26 %26
|
||||
%298 = OpBitwiseXor %180 %296 %297
|
||||
%299 = OpShiftLeftLogical %8 %18 %26
|
||||
%300 = OpShiftLeftLogical %20 %25 %26
|
||||
%301 = OpCompositeConstruct %169 %18 %18
|
||||
%302 = OpCompositeConstruct %35 %26 %26
|
||||
%303 = OpShiftLeftLogical %169 %301 %302
|
||||
%304 = OpCompositeConstruct %180 %25 %25 %25
|
||||
%305 = OpCompositeConstruct %180 %26 %26 %26
|
||||
%306 = OpShiftLeftLogical %180 %304 %305
|
||||
%307 = OpShiftRightArithmetic %8 %18 %26
|
||||
%308 = OpShiftRightLogical %20 %25 %26
|
||||
%309 = OpCompositeConstruct %169 %18 %18
|
||||
%310 = OpCompositeConstruct %35 %26 %26
|
||||
%311 = OpShiftRightArithmetic %169 %309 %310
|
||||
%312 = OpCompositeConstruct %180 %25 %25 %25
|
||||
%313 = OpCompositeConstruct %180 %26 %26 %26
|
||||
%314 = OpShiftRightLogical %180 %312 %313
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%179 = OpFunction %2 None %152
|
||||
%178 = OpLabel
|
||||
%177 = OpVariable %111 Function %7
|
||||
OpBranch %180
|
||||
%180 = OpLabel
|
||||
%181 = OpLoad %8 %177
|
||||
%182 = OpIAdd %8 %181 %7
|
||||
OpStore %177 %182
|
||||
%183 = OpLoad %8 %177
|
||||
%184 = OpISub %8 %183 %7
|
||||
OpStore %177 %184
|
||||
%185 = OpLoad %8 %177
|
||||
%186 = OpLoad %8 %177
|
||||
%187 = OpIMul %8 %185 %186
|
||||
OpStore %177 %187
|
||||
%188 = OpLoad %8 %177
|
||||
%189 = OpLoad %8 %177
|
||||
%190 = OpSDiv %8 %188 %189
|
||||
OpStore %177 %190
|
||||
%191 = OpLoad %8 %177
|
||||
%192 = OpSMod %8 %191 %7
|
||||
OpStore %177 %192
|
||||
%193 = OpLoad %8 %177
|
||||
%194 = OpBitwiseXor %8 %193 %11
|
||||
OpStore %177 %194
|
||||
%195 = OpLoad %8 %177
|
||||
%196 = OpBitwiseAnd %8 %195 %11
|
||||
OpStore %177 %196
|
||||
%197 = OpLoad %8 %177
|
||||
%198 = OpIAdd %8 %197 %7
|
||||
OpStore %177 %198
|
||||
%199 = OpLoad %8 %177
|
||||
%200 = OpISub %8 %199 %7
|
||||
OpStore %177 %200
|
||||
%316 = OpFunction %2 None %153
|
||||
%315 = OpLabel
|
||||
OpBranch %317
|
||||
%317 = OpLabel
|
||||
%318 = OpIEqual %10 %18 %7
|
||||
%319 = OpIEqual %10 %25 %26
|
||||
%320 = OpFOrdEqual %10 %14 %3
|
||||
%321 = OpCompositeConstruct %169 %18 %18
|
||||
%322 = OpCompositeConstruct %169 %7 %7
|
||||
%324 = OpIEqual %323 %321 %322
|
||||
%325 = OpCompositeConstruct %180 %25 %25 %25
|
||||
%326 = OpCompositeConstruct %180 %26 %26 %26
|
||||
%327 = OpIEqual %101 %325 %326
|
||||
%328 = OpCompositeConstruct %27 %14 %14 %14 %14
|
||||
%329 = OpCompositeConstruct %27 %3 %3 %3 %3
|
||||
%330 = OpFOrdEqual %29 %328 %329
|
||||
%331 = OpINotEqual %10 %18 %7
|
||||
%332 = OpINotEqual %10 %25 %26
|
||||
%333 = OpFOrdNotEqual %10 %14 %3
|
||||
%334 = OpCompositeConstruct %169 %18 %18
|
||||
%335 = OpCompositeConstruct %169 %7 %7
|
||||
%336 = OpINotEqual %323 %334 %335
|
||||
%337 = OpCompositeConstruct %180 %25 %25 %25
|
||||
%338 = OpCompositeConstruct %180 %26 %26 %26
|
||||
%339 = OpINotEqual %101 %337 %338
|
||||
%340 = OpCompositeConstruct %27 %14 %14 %14 %14
|
||||
%341 = OpCompositeConstruct %27 %3 %3 %3 %3
|
||||
%342 = OpFOrdNotEqual %29 %340 %341
|
||||
%343 = OpSLessThan %10 %18 %7
|
||||
%344 = OpULessThan %10 %25 %26
|
||||
%345 = OpFOrdLessThan %10 %14 %3
|
||||
%346 = OpCompositeConstruct %169 %18 %18
|
||||
%347 = OpCompositeConstruct %169 %7 %7
|
||||
%348 = OpSLessThan %323 %346 %347
|
||||
%349 = OpCompositeConstruct %180 %25 %25 %25
|
||||
%350 = OpCompositeConstruct %180 %26 %26 %26
|
||||
%351 = OpULessThan %101 %349 %350
|
||||
%352 = OpCompositeConstruct %27 %14 %14 %14 %14
|
||||
%353 = OpCompositeConstruct %27 %3 %3 %3 %3
|
||||
%354 = OpFOrdLessThan %29 %352 %353
|
||||
%355 = OpSLessThanEqual %10 %18 %7
|
||||
%356 = OpULessThanEqual %10 %25 %26
|
||||
%357 = OpFOrdLessThanEqual %10 %14 %3
|
||||
%358 = OpCompositeConstruct %169 %18 %18
|
||||
%359 = OpCompositeConstruct %169 %7 %7
|
||||
%360 = OpSLessThanEqual %323 %358 %359
|
||||
%361 = OpCompositeConstruct %180 %25 %25 %25
|
||||
%362 = OpCompositeConstruct %180 %26 %26 %26
|
||||
%363 = OpULessThanEqual %101 %361 %362
|
||||
%364 = OpCompositeConstruct %27 %14 %14 %14 %14
|
||||
%365 = OpCompositeConstruct %27 %3 %3 %3 %3
|
||||
%366 = OpFOrdLessThanEqual %29 %364 %365
|
||||
%367 = OpSGreaterThan %10 %18 %7
|
||||
%368 = OpUGreaterThan %10 %25 %26
|
||||
%369 = OpFOrdGreaterThan %10 %14 %3
|
||||
%370 = OpCompositeConstruct %169 %18 %18
|
||||
%371 = OpCompositeConstruct %169 %7 %7
|
||||
%372 = OpSGreaterThan %323 %370 %371
|
||||
%373 = OpCompositeConstruct %180 %25 %25 %25
|
||||
%374 = OpCompositeConstruct %180 %26 %26 %26
|
||||
%375 = OpUGreaterThan %101 %373 %374
|
||||
%376 = OpCompositeConstruct %27 %14 %14 %14 %14
|
||||
%377 = OpCompositeConstruct %27 %3 %3 %3 %3
|
||||
%378 = OpFOrdGreaterThan %29 %376 %377
|
||||
%379 = OpSGreaterThanEqual %10 %18 %7
|
||||
%380 = OpUGreaterThanEqual %10 %25 %26
|
||||
%381 = OpFOrdGreaterThanEqual %10 %14 %3
|
||||
%382 = OpCompositeConstruct %169 %18 %18
|
||||
%383 = OpCompositeConstruct %169 %7 %7
|
||||
%384 = OpSGreaterThanEqual %323 %382 %383
|
||||
%385 = OpCompositeConstruct %180 %25 %25 %25
|
||||
%386 = OpCompositeConstruct %180 %26 %26 %26
|
||||
%387 = OpUGreaterThanEqual %101 %385 %386
|
||||
%388 = OpCompositeConstruct %27 %14 %14 %14 %14
|
||||
%389 = OpCompositeConstruct %27 %3 %3 %3 %3
|
||||
%390 = OpFOrdGreaterThanEqual %29 %388 %389
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%202 = OpFunction %2 None %152
|
||||
%201 = OpLabel
|
||||
OpBranch %203
|
||||
%203 = OpLabel
|
||||
%204 = OpFunctionCall %23 %45
|
||||
%205 = OpFunctionCall %23 %70
|
||||
%206 = OpFunctionCall %8 %86
|
||||
%207 = OpVectorShuffle %26 %34 %34 0 1 2
|
||||
%208 = OpFunctionCall %26 %97 %207
|
||||
%209 = OpFunctionCall %4 %128
|
||||
%210 = OpFunctionCall %2 %151
|
||||
%211 = OpFunctionCall %2 %164
|
||||
%212 = OpFunctionCall %2 %173
|
||||
%213 = OpFunctionCall %2 %179
|
||||
%393 = OpFunction %2 None %153
|
||||
%392 = OpLabel
|
||||
%391 = OpVariable %112 Function %7
|
||||
OpBranch %394
|
||||
%394 = OpLabel
|
||||
%395 = OpLoad %8 %391
|
||||
%396 = OpIAdd %8 %395 %7
|
||||
OpStore %391 %396
|
||||
%397 = OpLoad %8 %391
|
||||
%398 = OpISub %8 %397 %7
|
||||
OpStore %391 %398
|
||||
%399 = OpLoad %8 %391
|
||||
%400 = OpLoad %8 %391
|
||||
%401 = OpIMul %8 %399 %400
|
||||
OpStore %391 %401
|
||||
%402 = OpLoad %8 %391
|
||||
%403 = OpLoad %8 %391
|
||||
%404 = OpSDiv %8 %402 %403
|
||||
OpStore %391 %404
|
||||
%405 = OpLoad %8 %391
|
||||
%406 = OpSMod %8 %405 %7
|
||||
OpStore %391 %406
|
||||
%407 = OpLoad %8 %391
|
||||
%408 = OpBitwiseAnd %8 %407 %11
|
||||
OpStore %391 %408
|
||||
%409 = OpLoad %8 %391
|
||||
%410 = OpBitwiseOr %8 %409 %11
|
||||
OpStore %391 %410
|
||||
%411 = OpLoad %8 %391
|
||||
%412 = OpBitwiseXor %8 %411 %11
|
||||
OpStore %391 %412
|
||||
%413 = OpLoad %8 %391
|
||||
%414 = OpShiftLeftLogical %8 %413 %25
|
||||
OpStore %391 %414
|
||||
%415 = OpLoad %8 %391
|
||||
%416 = OpShiftRightArithmetic %8 %415 %26
|
||||
OpStore %391 %416
|
||||
%417 = OpLoad %8 %391
|
||||
%418 = OpIAdd %8 %417 %7
|
||||
OpStore %391 %418
|
||||
%419 = OpLoad %8 %391
|
||||
%420 = OpISub %8 %419 %7
|
||||
OpStore %391 %420
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%422 = OpFunction %2 None %153
|
||||
%421 = OpLabel
|
||||
OpBranch %423
|
||||
%423 = OpLabel
|
||||
%424 = OpFunctionCall %27 %56
|
||||
%425 = OpFunctionCall %27 %81
|
||||
%426 = OpVectorShuffle %30 %41 %41 0 1 2
|
||||
%427 = OpFunctionCall %30 %98 %426
|
||||
%428 = OpFunctionCall %4 %129
|
||||
%429 = OpFunctionCall %2 %152
|
||||
%430 = OpFunctionCall %2 %167
|
||||
%431 = OpFunctionCall %2 %271
|
||||
%432 = OpFunctionCall %2 %316
|
||||
%433 = OpFunctionCall %2 %393
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
@@ -25,14 +25,6 @@ fn splat() -> vec4<f32> {
|
||||
return (a_1.xyxy + vec4<f32>(b));
|
||||
}
|
||||
|
||||
fn unary() -> i32 {
|
||||
if !(true) {
|
||||
return 1;
|
||||
} else {
|
||||
return ~(1);
|
||||
}
|
||||
}
|
||||
|
||||
fn bool_cast(x: vec3<f32>) -> vec3<f32> {
|
||||
let y = vec3<bool>(x);
|
||||
return vec3<f32>(y);
|
||||
@@ -62,24 +54,131 @@ fn constructors() -> f32 {
|
||||
return _e70;
|
||||
}
|
||||
|
||||
fn modulo() {
|
||||
let a_2 = (1 % 1);
|
||||
let b_1 = (1.0 % 1.0);
|
||||
let c = (vec3<i32>(1) % vec3<i32>(1));
|
||||
let d = (vec3<f32>(1.0) % vec3<f32>(1.0));
|
||||
}
|
||||
|
||||
fn scalar_times_matrix() {
|
||||
let model = mat4x4<f32>(vec4<f32>(1.0, 0.0, 0.0, 0.0), vec4<f32>(0.0, 1.0, 0.0, 0.0), vec4<f32>(0.0, 0.0, 1.0, 0.0), vec4<f32>(0.0, 0.0, 0.0, 1.0));
|
||||
let assertion = (2.0 * model);
|
||||
}
|
||||
|
||||
fn logical() {
|
||||
let a_3 = (true | false);
|
||||
let b_2 = (true & false);
|
||||
let unnamed_11 = !(true);
|
||||
let unnamed_12 = (true || false);
|
||||
let unnamed_13 = (true && false);
|
||||
let unnamed_14 = (true | false);
|
||||
let unnamed_15 = (vec3<bool>(true) | vec3<bool>(false));
|
||||
let unnamed_16 = (true & false);
|
||||
let unnamed_17 = (vec4<bool>(true) & vec4<bool>(false));
|
||||
}
|
||||
|
||||
fn binary_assignment() {
|
||||
fn arithmetic() {
|
||||
let unnamed_18 = -(vec2<i32>(1));
|
||||
let unnamed_19 = -(vec2<f32>(1.0));
|
||||
let unnamed_20 = (2 + 1);
|
||||
let unnamed_21 = (2u + 1u);
|
||||
let unnamed_22 = (2.0 + 1.0);
|
||||
let unnamed_23 = (vec2<i32>(2) + vec2<i32>(1));
|
||||
let unnamed_24 = (vec3<u32>(2u) + vec3<u32>(1u));
|
||||
let unnamed_25 = (vec4<f32>(2.0) + vec4<f32>(1.0));
|
||||
let unnamed_26 = (2 - 1);
|
||||
let unnamed_27 = (2u - 1u);
|
||||
let unnamed_28 = (2.0 - 1.0);
|
||||
let unnamed_29 = (vec2<i32>(2) - vec2<i32>(1));
|
||||
let unnamed_30 = (vec3<u32>(2u) - vec3<u32>(1u));
|
||||
let unnamed_31 = (vec4<f32>(2.0) - vec4<f32>(1.0));
|
||||
let unnamed_32 = (2 * 1);
|
||||
let unnamed_33 = (2u * 1u);
|
||||
let unnamed_34 = (2.0 * 1.0);
|
||||
let unnamed_35 = (vec2<i32>(2) * vec2<i32>(1));
|
||||
let unnamed_36 = (vec3<u32>(2u) * vec3<u32>(1u));
|
||||
let unnamed_37 = (vec4<f32>(2.0) * vec4<f32>(1.0));
|
||||
let unnamed_38 = (2 / 1);
|
||||
let unnamed_39 = (2u / 1u);
|
||||
let unnamed_40 = (2.0 / 1.0);
|
||||
let unnamed_41 = (vec2<i32>(2) / vec2<i32>(1));
|
||||
let unnamed_42 = (vec3<u32>(2u) / vec3<u32>(1u));
|
||||
let unnamed_43 = (vec4<f32>(2.0) / vec4<f32>(1.0));
|
||||
let unnamed_44 = (2 % 1);
|
||||
let unnamed_45 = (2u % 1u);
|
||||
let unnamed_46 = (2.0 % 1.0);
|
||||
let unnamed_47 = (vec2<i32>(2) % vec2<i32>(1));
|
||||
let unnamed_48 = (vec3<u32>(2u) % vec3<u32>(1u));
|
||||
let unnamed_49 = (vec4<f32>(2.0) % vec4<f32>(1.0));
|
||||
let unnamed_50 = (vec2<i32>(2) + vec2<i32>(1));
|
||||
let unnamed_51 = (vec2<i32>(2) + vec2<i32>(1));
|
||||
let unnamed_52 = (vec2<i32>(2) - vec2<i32>(1));
|
||||
let unnamed_53 = (vec2<i32>(2) - vec2<i32>(1));
|
||||
let unnamed_54 = (vec2<i32>(2) * 1);
|
||||
let unnamed_55 = (2 * vec2<i32>(1));
|
||||
let unnamed_56 = (vec2<i32>(2) / vec2<i32>(1));
|
||||
let unnamed_57 = (vec2<i32>(2) / vec2<i32>(1));
|
||||
let unnamed_58 = (vec2<i32>(2) % vec2<i32>(1));
|
||||
let unnamed_59 = (vec2<i32>(2) % vec2<i32>(1));
|
||||
let unnamed_60 = (mat3x3<f32>(vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0)) * 1.0);
|
||||
let unnamed_61 = (2.0 * mat3x3<f32>(vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0)));
|
||||
let unnamed_62 = (mat4x3<f32>(vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0)) * vec4<f32>(1.0));
|
||||
let unnamed_63 = (vec3<f32>(2.0) * mat4x3<f32>(vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0)));
|
||||
let unnamed_64 = (mat4x3<f32>(vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0), vec3<f32>(0.0, 0.0, 0.0)) * mat3x4<f32>(vec4<f32>(0.0, 0.0, 0.0, 0.0), vec4<f32>(0.0, 0.0, 0.0, 0.0), vec4<f32>(0.0, 0.0, 0.0, 0.0)));
|
||||
}
|
||||
|
||||
fn bit() {
|
||||
let unnamed_65 = ~(1);
|
||||
let unnamed_66 = ~(1u);
|
||||
let unnamed_67 = (2 | 1);
|
||||
let unnamed_68 = (2u | 1u);
|
||||
let unnamed_69 = (vec2<i32>(2) | vec2<i32>(1));
|
||||
let unnamed_70 = (vec3<u32>(2u) | vec3<u32>(1u));
|
||||
let unnamed_71 = (2 & 1);
|
||||
let unnamed_72 = (2u & 1u);
|
||||
let unnamed_73 = (vec2<i32>(2) & vec2<i32>(1));
|
||||
let unnamed_74 = (vec3<u32>(2u) & vec3<u32>(1u));
|
||||
let unnamed_75 = (2 ^ 1);
|
||||
let unnamed_76 = (2u ^ 1u);
|
||||
let unnamed_77 = (vec2<i32>(2) ^ vec2<i32>(1));
|
||||
let unnamed_78 = (vec3<u32>(2u) ^ vec3<u32>(1u));
|
||||
let unnamed_79 = (2 << 1u);
|
||||
let unnamed_80 = (2u << 1u);
|
||||
let unnamed_81 = (vec2<i32>(2) << vec2<u32>(1u));
|
||||
let unnamed_82 = (vec3<u32>(2u) << vec3<u32>(1u));
|
||||
let unnamed_83 = (2 >> 1u);
|
||||
let unnamed_84 = (2u >> 1u);
|
||||
let unnamed_85 = (vec2<i32>(2) >> vec2<u32>(1u));
|
||||
let unnamed_86 = (vec3<u32>(2u) >> vec3<u32>(1u));
|
||||
}
|
||||
|
||||
fn comparison() {
|
||||
let unnamed_87 = (2 == 1);
|
||||
let unnamed_88 = (2u == 1u);
|
||||
let unnamed_89 = (2.0 == 1.0);
|
||||
let unnamed_90 = (vec2<i32>(2) == vec2<i32>(1));
|
||||
let unnamed_91 = (vec3<u32>(2u) == vec3<u32>(1u));
|
||||
let unnamed_92 = (vec4<f32>(2.0) == vec4<f32>(1.0));
|
||||
let unnamed_93 = (2 != 1);
|
||||
let unnamed_94 = (2u != 1u);
|
||||
let unnamed_95 = (2.0 != 1.0);
|
||||
let unnamed_96 = (vec2<i32>(2) != vec2<i32>(1));
|
||||
let unnamed_97 = (vec3<u32>(2u) != vec3<u32>(1u));
|
||||
let unnamed_98 = (vec4<f32>(2.0) != vec4<f32>(1.0));
|
||||
let unnamed_99 = (2 < 1);
|
||||
let unnamed_100 = (2u < 1u);
|
||||
let unnamed_101 = (2.0 < 1.0);
|
||||
let unnamed_102 = (vec2<i32>(2) < vec2<i32>(1));
|
||||
let unnamed_103 = (vec3<u32>(2u) < vec3<u32>(1u));
|
||||
let unnamed_104 = (vec4<f32>(2.0) < vec4<f32>(1.0));
|
||||
let unnamed_105 = (2 <= 1);
|
||||
let unnamed_106 = (2u <= 1u);
|
||||
let unnamed_107 = (2.0 <= 1.0);
|
||||
let unnamed_108 = (vec2<i32>(2) <= vec2<i32>(1));
|
||||
let unnamed_109 = (vec3<u32>(2u) <= vec3<u32>(1u));
|
||||
let unnamed_110 = (vec4<f32>(2.0) <= vec4<f32>(1.0));
|
||||
let unnamed_111 = (2 > 1);
|
||||
let unnamed_112 = (2u > 1u);
|
||||
let unnamed_113 = (2.0 > 1.0);
|
||||
let unnamed_114 = (vec2<i32>(2) > vec2<i32>(1));
|
||||
let unnamed_115 = (vec3<u32>(2u) > vec3<u32>(1u));
|
||||
let unnamed_116 = (vec4<f32>(2.0) > vec4<f32>(1.0));
|
||||
let unnamed_117 = (2 >= 1);
|
||||
let unnamed_118 = (2u >= 1u);
|
||||
let unnamed_119 = (2.0 >= 1.0);
|
||||
let unnamed_120 = (vec2<i32>(2) >= vec2<i32>(1));
|
||||
let unnamed_121 = (vec3<u32>(2u) >= vec3<u32>(1u));
|
||||
let unnamed_122 = (vec4<f32>(2.0) >= vec4<f32>(1.0));
|
||||
}
|
||||
|
||||
fn assignment() {
|
||||
var a: i32 = 1;
|
||||
|
||||
let _e6 = a;
|
||||
@@ -95,13 +194,19 @@ fn binary_assignment() {
|
||||
let _e18 = a;
|
||||
a = (_e18 % 1);
|
||||
let _e21 = a;
|
||||
a = (_e21 ^ 0);
|
||||
a = (_e21 & 0);
|
||||
let _e24 = a;
|
||||
a = (_e24 & 0);
|
||||
a = (_e24 | 0);
|
||||
let _e27 = a;
|
||||
a = (_e27 + 1);
|
||||
a = (_e27 ^ 0);
|
||||
let _e30 = a;
|
||||
a = (_e30 - 1);
|
||||
a = (_e30 << 2u);
|
||||
let _e33 = a;
|
||||
a = (_e33 >> 1u);
|
||||
let _e36 = a;
|
||||
a = (_e36 + 1);
|
||||
let _e39 = a;
|
||||
a = (_e39 - 1);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -109,12 +214,12 @@ fn binary_assignment() {
|
||||
fn main() {
|
||||
let _e4 = builtins();
|
||||
let _e5 = splat();
|
||||
let _e6 = unary();
|
||||
let _e8 = bool_cast(vec4<f32>(1.0, 1.0, 1.0, 1.0).xyz);
|
||||
let _e9 = constructors();
|
||||
modulo();
|
||||
scalar_times_matrix();
|
||||
let _e7 = bool_cast(vec4<f32>(1.0, 1.0, 1.0, 1.0).xyz);
|
||||
let _e8 = constructors();
|
||||
logical();
|
||||
binary_assignment();
|
||||
arithmetic();
|
||||
bit();
|
||||
comparison();
|
||||
assignment();
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user