[all-commits] [llvm/llvm-project] bf0897: Don't loop unswitch vector selects

Valentin Churavy via All-commits all-commits at lists.llvm.org
Sun Apr 30 16:21:07 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: bf089732775520624cb4983bfed6c341e1b4c405
      https://github.com/llvm/llvm-project/commit/bf089732775520624cb4983bfed6c341e1b4c405
  Author: Valentin Churavy <v.churavy at gmail.com>
  Date:   2023-04-30 (Sun, 30 Apr 2023)

  Changed paths:
    M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
    M llvm/test/Transforms/SimpleLoopUnswitch/nontrivial-unswitch-select.ll

  Log Message:
  -----------
  Don't loop unswitch vector selects

Otherwise we could produce `br <2x i1>` which are of course not legal.

```
Branch condition is not 'i1' type!
  br <2 x i1> %cond.fr1, label %entry.split.us, label %entry.split
  %cond.fr1 = freeze <2 x i1> %cond
LLVM ERROR: Broken module found, compilation aborted!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.	Program arguments: /home/vchuravy/builds/llvm/bin/opt -passes=simple-loop-unswitch<nontrivial> -S
```

Fixes change introduced by https://reviews.llvm.org/D138526

Reviewed By: caojoshua

Differential Revision: https://reviews.llvm.org/D149560




More information about the All-commits mailing list