Follow up to d0858bffa11, add missing REQUIRES x86
[llvm-project.git] / llvm / test / Transforms / SimpleLoopUnswitch / pr37888.ll
blob099d6a5456e8eac4d1499bf9018dac45f5a04266
1 ; RUN: opt -passes=simple-loop-unswitch,loop-deletion -verify-memoryssa -S < %s | FileCheck %s
3 ; Check that when we do unswitching where we re-enqueue the loop to be processed
4 ; again, but manage to delete the loop before ever getting to iterate on it, it
5 ; doesn't crash the legacy pass manager.
7 target triple = "x86_64-unknown-linux-gnu"
9 define void @pr37888() {
10 ; CHECK-LABEL: define void @pr37888()
11 entry:
12   %tobool = icmp ne i16 undef, 0
13   br label %for.body
14 ; CHECK:         %[[TOBOOL:.*]] = icmp ne
15 ; CHECK-NEXT:    br i1 %[[TOBOOL]], label %if.then, label %[[ENTRY_SPLIT:.*]]
17 ; CHECK:       [[ENTRY_SPLIT]]:
18 ; CHECK-NEXT:    br label %for.end
20 for.body:
21   br i1 %tobool, label %if.then, label %if.end
23 if.then:
24   unreachable
25 ; CHECK:       if.then:
26 ; CHECK-NEXT:    unreachable
28 if.end:
29   br label %for.inc
31 for.inc:
32   br i1 undef, label %for.body, label %for.end
34 for.end:
35   ret void
36 ; CHECK:       for.end:
37 ; CHECK-NEXT:    ret void