================ @@ -5464,6 +5464,15 @@ RValue CodeGenFunction::EmitCall(const CGFunctionInfo &CallInfo, Builder.CreateStore(errorValue, swiftErrorTemp); } + // Mfloat8 type is loaded as scalar type, but is treated as single + // vector type for other operations. We need to bitcast it to the vector + // type here. + if (auto *EltTy = ---------------- paulwalker-arm wrote:
Does the ABI say this? My understand is that values of type _mfp8 are floating-point 8-bit values that are passes as _mfp8. The pretend it's an `i8` in some cases and `<1 x i8>` in others is purely an implementation detail within clang. This is not to say the code is invalid, but we should be cautious with how far down the rabbit hole we go. FYI: As part of @MacDue's work to improve streaming-mode code generation I asked him to add the MVT `aarch64mfp8` along with support to load and store it. I expect over time we'll migrate away from using `i8` as our scalar type. https://github.com/llvm/llvm-project/pull/128019 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits