craig.topper added inline comments.
================ Comment at: clang/lib/Headers/avx512fp16intrin.h:2972 #define _mm_mask_fcmadd_round_sch(A, U, B, C, R) \ ((__m128h)__builtin_ia32_selectps_128( \ (__mmask8)(U & 1), \ ---------------- pengfei wrote: > craig.topper wrote: > > Why is this intrinsic written like this? We can't evaluate macro arguments > > like A and U twice. It can cause surprising results. > Thanks Craig! You are right, we can't evaluate them twice. But we have to use > them twice, because we want to provide user the same functionality as former > FMA intrinsics. Maybe we need to define and use temp variables. Is it possible to just have single builtin call and create all the IR from CGBuiltin? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D109658/new/ https://reviews.llvm.org/D109658 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits