From https://bugs.llvm.org/show_bug.cgi?id=49739:
Currently, #pragma clang fp are ignored for matrix types.
For the code below, the contract fast-math flag should be added to the generated call to llvm.matrix.multiply and fadd
typedef float fx2x2_t __attribute__((matrix_type(2, 2))); void foo(fx2x2_t &A, fx2x2_t &C, fx2x2_t &B) { #pragma clang fp contract(fast) C = A*B + C; }
I don't think we need --target=arm64-unknown-iphoneos or -g0?