[PATCH] D16291: AArch64: Implement missed conditional compare sequences.

Geoff Berry via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 19 11:11:51 PST 2016


gberry added a comment.

Perhaps a better place to catch this would be in performExtendCombine?  You could look for (zext/sext/anyext (and/or i1)) there and transform it into a CSEL with optimized condition.
Here are a couple more test cases that I think this approach would catch:

int single_noselect_phi(int A, int B, int C)
{

  _Bool b;
  if (C) {
      b = A < 4 || B < 2;
  } else {
      b = A > 0 && B > 0;
  }
  return b;

}

int single_ext(int A, int B, int C)
{

  return (A < 4 || B < 2) + C;

}


http://reviews.llvm.org/D16291





More information about the llvm-commits mailing list