dawn-cmake/test/tint/statements/compound_assign/complex_lhs.wgsl.expected.msl
James Price 60107e7435 msl: Implement compound assignment
Use the ExpandCompoundAssignment transform to convert compound
assignments to regular assignments.

Bug: tint:1325
Change-Id: I960bf6cd0ec3490cd58685a7c13b6a7c86395080
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/85283
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-03-31 22:30:10 +00:00

30 lines
810 B
Plaintext

#include <metal_stdlib>
using namespace metal;
struct tint_array_wrapper {
int4 arr[4];
};
struct S {
tint_array_wrapper a;
};
int foo(thread int* const tint_symbol_4) {
*(tint_symbol_4) = as_type<int>((as_type<uint>(*(tint_symbol_4)) + as_type<uint>(1)));
return *(tint_symbol_4);
}
int bar(thread int* const tint_symbol_5) {
*(tint_symbol_5) = as_type<int>((as_type<uint>(*(tint_symbol_5)) + as_type<uint>(2)));
return *(tint_symbol_5);
}
void tint_symbol(thread int* const tint_symbol_6) {
S x = {};
int const tint_symbol_3 = foo(tint_symbol_6);
int const tint_symbol_1_save = tint_symbol_3;
int const tint_symbol_2 = bar(tint_symbol_6);
x.a.arr[tint_symbol_1_save][tint_symbol_2] = as_type<int>((as_type<uint>(x.a.arr[tint_symbol_1_save][tint_symbol_2]) + as_type<uint>(5)));
}