File: switch_undef.ll

package info (click to toggle)
llvm-toolchain-7 1%3A7.0.1-8~deb9u3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 733,456 kB
  • sloc: cpp: 3,776,651; ansic: 633,271; asm: 350,301; python: 142,716; objc: 107,612; sh: 22,626; lisp: 11,056; perl: 7,999; pascal: 6,742; ml: 5,537; awk: 3,536; makefile: 2,557; cs: 2,027; xml: 841; ruby: 156
file content (23 lines) | stat: -rw-r--r-- 738 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
; RUN: opt %s -keep-loops=false -switch-to-lookup=true -simplifycfg -S | FileCheck %s

define void @f6() #0 {
; CHECK-LABEL: entry:

entry:
  br label %for.cond.i

for.cond.i:                                       ; preds = %f1.exit.i, %entry
  switch i16 undef, label %f1.exit.i [
    i16 -1, label %cond.false.i3.i
    i16 1, label %cond.false.i3.i
    i16 0, label %cond.false.i3.i
  ]

cond.false.i3.i:                                  ; preds = %for.cond.i, %for.cond.i, %for.cond.i
  br label %f1.exit.i

f1.exit.i:                                        ; preds = %cond.false.i3.i, %for.cond.i
  %cond.i4.i = phi i16 [ undef, %cond.false.i3.i ], [ 1, %for.cond.i ]
  %tobool7.i = icmp ne i16 %cond.i4.i, 0
  br label %for.cond.i
}