dawn-cmake/test/intrinsics/gen/modf/a54eca.wgsl.expected.msl
Ben Clayton 03c8393213 [writer/msl]: Implement modf and frexp
And remove the u32 overload of frexp (it's not in the spec).

Brings the number of failing tint end to end tests for MSL down to 19/1098.

The WG still haven't found consensus on reworking these two intrinsics.
It's very likely that their signature will change so that they return a structure instead of returning a value and outputing another as a pointer.

Until the WG makes a decision, let's implement these according to the current spec.
Some overloads are still failing due to MSL missing overloads of the pointer parameter being in the `threadgroup` address space.

I'm holding off fixing these until we know what's happening with these intrinsics.

See also:
https://github.com/gpuweb/gpuweb/issues/1480
https://github.com/gpuweb/gpuweb/issues/1846

Change-Id: Ib6764e6659d840db41bc65fed2b8b283d1056c3d
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/57421
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
2021-07-08 21:21:27 +00:00

29 lines
448 B
Plaintext

#include <metal_stdlib>
using namespace metal;
struct tint_symbol {
float4 value [[position]];
};
void modf_a54eca() {
float2 arg_1 = 0.0f;
float2 res = modf(float2(), *(&(arg_1)));
}
vertex tint_symbol vertex_main() {
modf_a54eca();
tint_symbol const tint_symbol_1 = {.value=float4()};
return tint_symbol_1;
}
fragment void fragment_main() {
modf_a54eca();
return;
}
kernel void compute_main() {
modf_a54eca();
return;
}