[PATCH] D138526: [SimpleLoopUnswitch] unswitch selects

Martin Storsjö via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Apr 30 23:30:36 PDT 2023


mstorsjo added a comment.

This triggers failed asserts for aarch64. To repro:

  $ cat repro.c
  typedef __attribute__((neon_vector_type(8))) unsigned char a;
  a c, d, f;
  char e;
  void b();
  void g() {
    a h;
    if (e) {
      a i = {255};
      h = i;
    } else {
      a i = {};
      h = i;
    }
    for (;;) {
      b();
      a i = __builtin_neon_vbsl_v(h, c, d, 16);
      f = i;
    }
  }
  $ clang -target aarch64-linux-gnu -c repro.c -O3
  clang: ../lib/IR/Instructions.cpp:1383: void llvm::BranchInst::AssertOK(): Assertion `getCondition()->getType()->isIntegerTy(1) && "May only branch on boolean predicates!"' failed.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138526/new/

https://reviews.llvm.org/D138526



More information about the llvm-commits mailing list