2021-07-17 03:56:15 +00:00
|
|
|
// language: metal1.1
|
2021-05-29 01:49:50 +00:00
|
|
|
#include <metal_stdlib>
|
|
|
|
#include <simd/simd.h>
|
|
|
|
|
2021-12-27 02:57:47 +00:00
|
|
|
constexpr constant bool Foo_2 = true;
|
2021-11-09 14:24:41 +00:00
|
|
|
struct type_2 {
|
2021-05-29 02:11:39 +00:00
|
|
|
float inner[10u];
|
2021-05-29 01:49:50 +00:00
|
|
|
};
|
2021-12-27 02:57:47 +00:00
|
|
|
struct Foo {
|
|
|
|
metal::packed_float3 v3_;
|
|
|
|
float v1_;
|
|
|
|
};
|
2021-05-29 01:49:50 +00:00
|
|
|
|
2021-11-09 14:24:41 +00:00
|
|
|
kernel void main_(
|
|
|
|
threadgroup type_2& wg
|
2021-11-24 22:36:57 +00:00
|
|
|
, threadgroup metal::atomic_uint& at_1
|
2021-12-27 02:57:47 +00:00
|
|
|
, constant Foo& alignment [[user(fake0)]]
|
2021-05-29 01:49:50 +00:00
|
|
|
) {
|
2021-12-27 02:57:47 +00:00
|
|
|
float Foo_1 = 1.0;
|
2021-11-24 22:36:57 +00:00
|
|
|
bool at = true;
|
2021-12-27 02:57:47 +00:00
|
|
|
float _e7 = alignment.v1_;
|
|
|
|
wg.inner[3] = _e7;
|
2021-12-28 05:13:13 +00:00
|
|
|
float _e12 = metal::float3(alignment.v3_).x;
|
|
|
|
wg.inner[2] = _e12;
|
2021-11-24 22:36:57 +00:00
|
|
|
metal::atomic_store_explicit(&at_1, 2u, metal::memory_order_relaxed);
|
2021-05-29 01:49:50 +00:00
|
|
|
return;
|
|
|
|
}
|