If VC = cpsgn(VA, VB),
Current behaviour:
VA = -1.000000000 2.000000000 -3.000000000 4.000000000 VB = 1.000000000 1.000000000 1.000000000 1.000000000 VC = 1.000000000 2.000000000 3.000000000 4.000000000
Expected behaviour (as per ABI document):
VA -1.000000000 2.000000000 -3.000000000 4.000000000 VB 1.000000000 1.000000000 1.000000000 1.000000000 VC -1.000000000 1.000000000 -1.000000000 1.000000000
Could you add a test case in clang/test/CodeGen/builtins-ppc-vsx.c showing that calls to the builtins and calls to vec_cpsgn are generated as calls to the copysign LLVM intrinsic with the arguments being inverted ?