adds vabsd* instruction for unsigned byte/halfword/word, and matching intrinsics to expose them.
IIRC, when I was doing the patches that I sent you, there was a generic absolute value intrinsic, that I could use. That is better than the PPC intrinsics, because it is more likely that optimizations understand it. Could you use the generic one here?
you should not need -mattr=+altivec when you have -mcpu=pwr9. Does something go wrong when you remove that?
Been a while since I looked at this, but do the PowerPC_Vec_BBB_Intrinsic and it's halfword and word equivalent not have the same definition as this (and therefore allow you to more concisely define these)? Basically what I'm getting at is using the most specialized class that has the right form.
Please don't add blank lines arbitrarily.
I don't think there is a generic one for integer types, but I might be wrong. I think there's only llvm.fabs.
This is a very minor nit, but the very first characters on the continuation line should line up inside the angle bracket. So the double quote character should line up with the 1 character above.
I agree. If this test case behaves differently with and without -mattr=+altivec, we need to look into why.
Please add the register operands here. The ABI locks all 3.
|1 ↗||(On Diff #76183)|
Please don't add this file or the one below. The assembler and disassembler do not care about predicates. If they understand an encoding, they will emit what it is. Just add these to the existing test cases.
Updated based on the review comments:
- fixed extra blank line/spacing issues
- switched the intrinsics to use the most derived type that fits the format
- removed the new test files and put the checks into the existing files
- removed the unneeded altivec feature to the codegen test