dawn-cmake/test/expressions/binary_expressions.wgsl.expected.msl
James Price 851b18b2f2 writer/msl: Emit field designators for structures
This fixes constructors for structures that contain padding members
due to explicit layout attributes.

Also fix one test that was wrongly using an identity type constructor
for a structure.

Fixed: tint:853
Change-Id: I0a3e84fcd7c6a7f2ad92a4970ed11378e6ce2465
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53240
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2021-06-03 18:12:15 +00:00

114 lines
1.7 KiB
Plaintext

#include <metal_stdlib>
using namespace metal;
struct tint_symbol_1 {
float4 value [[color(0)]];
};
void bitwise_i32() {
int s1 = 0;
int s2 = 0;
int3 v1 = 0;
int3 v2 = 0;
s1 = (s1 | s2);
s1 = (s1 & s2);
s1 = (s1 ^ s2);
v1 = (v1 | v2);
v1 = (v1 & v2);
v1 = (v1 ^ v2);
}
void bitwise_u32() {
uint s1 = 0u;
uint s2 = 0u;
uint3 v1 = 0u;
uint3 v2 = 0u;
s1 = (s1 | s2);
s1 = (s1 & s2);
s1 = (s1 ^ s2);
v1 = (v1 | v2);
v1 = (v1 & v2);
v1 = (v1 ^ v2);
}
void vector_scalar_f32() {
float3 v = 0.0f;
float s = 0.0f;
float3 r = 0.0f;
r = (v + s);
r = (v - s);
r = (v * s);
r = (v / s);
}
void vector_scalar_i32() {
int3 v = 0;
int s = 0;
int3 r = 0;
r = (v + s);
r = (v - s);
r = (v * s);
r = (v / s);
r = (v % s);
}
void vector_scalar_u32() {
uint3 v = 0u;
uint s = 0u;
uint3 r = 0u;
r = (v + s);
r = (v - s);
r = (v * s);
r = (v / s);
r = (v % s);
}
void scalar_vector_f32() {
float3 v = 0.0f;
float s = 0.0f;
float3 r = 0.0f;
r = (s + v);
r = (s - v);
r = (s * v);
r = (s / v);
}
void scalar_vector_i32() {
int3 v = 0;
int s = 0;
int3 r = 0;
r = (s + v);
r = (s - v);
r = (s * v);
r = (s / v);
r = (s % v);
}
void scalar_vector_u32() {
uint3 v = 0u;
uint s = 0u;
uint3 r = 0u;
r = (s + v);
r = (s - v);
r = (s * v);
r = (s / v);
r = (s % v);
}
void matrix_matrix_f32() {
float3x4 m34 = float3x4(0.0f);
float4x3 m43 = float4x3(0.0f);
float3x3 m33 = float3x3(0.0f);
float4x4 m44 = float4x4(0.0f);
m34 = (m34 + m34);
m34 = (m34 - m34);
m33 = (m43 * m34);
m44 = (m34 * m43);
}
fragment tint_symbol_1 tint_symbol() {
tint_symbol_1 const tint_symbol_2 = {.value=float4(0.0f, 0.0f, 0.0f, 0.0f)};
return tint_symbol_2;
}