This patch does two things:
- Expand the DAG combiner to handle vectors when combining FP logical ops and to produce negated absolute value
- Enable this on PPC
I tried to split this out to two patches to handle the target independent part separately from the PPC part, however I'm not sure how to write a test case for it without a target that enables this on both scalar and vector types. I'd be happy to split it if someone has an idea on how to produce a test case.
I would appreciate it if target owners can try out this patch as it of course has the potential to cause infinite loops if they have combines that will convert ISD::FABS and ISD::FNEG into bitcasts and logical ops and their target is set to allow these combines for the respective type.