Hi! On Wed, Jun 30, 2021 at 04:56:04PM -0500, Peter Bergner wrote: > LLVM added the __builtin_vsx_lxvp and __builtin_vsx_stxvp built-ins. > The following patch adds support for them to GCC so that we stay in sync > with LLVM.
This should be documented somewhere. > + else if (fncode == VSX_BUILTIN_LXVP) > + { > + push_gimplify_context (true); > + tree offset = gimple_call_arg (stmt, 0); > + tree ptr = gimple_call_arg (stmt, 1); > + tree lhs = gimple_call_lhs (stmt); > + tree mem = build_simple_mem_ref (build2 (POINTER_PLUS_EXPR, TREE_TYPE > (ptr), ptr, offset)); Line (much) too long. > + else if (fncode == VSX_BUILTIN_STXVP) > + { > + push_gimplify_context (true); > + tree src = gimple_call_arg (stmt, 0); > + tree offset = gimple_call_arg (stmt, 1); > + tree ptr = gimple_call_arg (stmt, 2); > + tree mem = build_simple_mem_ref (build2 (POINTER_PLUS_EXPR, TREE_TYPE > (ptr), ptr, offset)); Same. Can BU_MMA_LD be used only for lxvp? Name it BU_MMA_PAIR_LD then? Same for _ST ofc. The patch is okay for trunk. For the backports it is okay if Bill has looked at this patch as well. Thanks! Segher