SPIRV-Cross/reference/shaders-msl/asm/frag
Chip Davis 27af716c3a MSL: Emit F{Min,Max,Clamp} as fast:: and N{Min,Max,Clamp} as precise::.
This roughly matches their semantics in SPIR-V and MSL. For `FMin`,
`FMax`, and `FClamp`, and the Metal functions `fast::min()`,
`fast::max()`, and `fast::clamp()`, the result is undefined if any
operand is NaN. For the 'N' operations and their corresponding MSL
`precise::` functions, the result is consistent with IEEE 754 (first
non-NaN wins; result is NaN if all operands are NaN).

We can only do this with 32-bit floats, though, because Metal only
provides these variants for `float`. `half` only has one variant of
these functions that is presumably consistent with IEEE 754. I guess
that's OK; the SPIR-V spec only says that `F{Min,Max,Clamp}` are
undefined for NaNs. Performance might suffer, though.
2018-09-01 23:01:46 -05:00
..
combined-sampler-reuse.asm.frag CompilerMSL support matrices & arrays in stage-in & stage-out. 2018-06-12 11:41:35 -04:00
default-member-names.asm.frag CompilerMSL support and tests for OpUndef. 2017-11-15 22:44:42 -05:00
empty-struct.asm.frag MSL: Properly support passing parameters by value. 2018-08-06 15:43:51 +02:00
frem.asm.frag CompilerMSL support matrices & arrays in stage-in & stage-out. 2018-06-12 11:41:35 -04:00
function-overload-alias.asm.frag Handle overloaded functions which share the same OpName. 2018-02-23 14:15:51 +01:00
image-extract-reuse.asm.frag Fix usage tracking issue for OpImage. 2018-04-27 11:11:24 +02:00
implicit-read-dep-phi.asm.frag CompilerMSL support matrices & arrays in stage-in & stage-out. 2018-06-12 11:41:35 -04:00
lut-promotion-initializer.asm.frag Deal with composite constants in variable initializer. 2018-07-05 15:29:49 +02:00
min-max-clamp.asm.frag MSL: Emit F{Min,Max,Clamp} as fast:: and N{Min,Max,Clamp} as precise::. 2018-09-01 23:01:46 -05:00
op-constant-null.asm.frag Remove some redundant spvArrayCopy declarations. 2018-07-05 14:43:12 +02:00
pass-by-value.asm.frag MSL: Properly support passing parameters by value. 2018-08-06 15:43:51 +02:00
phi-loop-variable.asm.frag Fix CFG for forwarded temporaries. 2018-01-18 12:11:33 +01:00
srem.asm.frag CompilerMSL support matrices & arrays in stage-in & stage-out. 2018-06-12 11:41:35 -04:00
texel-fetch-no-lod.asm.frag Deal with OpImageFetch without explicit LOD. 2018-04-30 10:54:44 +02:00
undef-variable-store.asm.frag For MSL, use {} instead of constructors to init OpUndef values. 2017-11-30 15:03:27 -05:00
unknown-depth-state.asm.frag Support OpTypeImage with depth == 2 (unknown) properly. 2018-07-04 14:26:23 +02:00
unord-relational-op.asm.frag Add tests for FUnord comparisons of vectors. 2018-09-01 12:42:07 -05:00
unreachable.asm.frag CompilerMSL support matrices & arrays in stage-in & stage-out. 2018-06-12 11:41:35 -04:00
vector-shuffle-oom.asm.frag MSL: Emit F{Min,Max,Clamp} as fast:: and N{Min,Max,Clamp} as precise::. 2018-09-01 23:01:46 -05:00