This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
how to check if target supports andnot instruction ?
- From: Prathamesh Kulkarni <prathamesh dot kulkarni at linaro dot org>
- To: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>, Richard Biener <rguenther at suse dot de>
- Date: Wed, 12 Oct 2016 13:09:32 +0530
- Subject: how to check if target supports andnot instruction ?
- Authentication-results: sourceware.org; auth=none
Hi,
I was having a look at PR71636 and added the following pattern to match.pd:
x & ((1U << b) - 1) -> x & ~(~0U << b)
However the transform is useful only if the target supports "andnot"
instruction.
As pointed out by Marc in PR for -march=core2, lhs generates worse
code than rhs,
so we shouldn't do the transform if target doesn't support andnot insn.
(perhaps we could do the reverse transform for target not supporting andnot?)
However it seems andnot isn't a standard pattern name, so am not sure
how to check
if target supports andnot insn ?
Thanks,
Prathamesh