File: pr63013.ll

package info (click to toggle)
llvm-toolchain-19 1%3A19.1.7-3~deb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm-proposed-updates
  • size: 1,998,492 kB
  • sloc: cpp: 6,951,680; ansic: 1,486,157; asm: 913,598; python: 232,024; f90: 80,126; objc: 75,281; lisp: 37,276; pascal: 16,990; sh: 10,009; ml: 5,058; perl: 4,724; awk: 3,523; makefile: 3,167; javascript: 2,504; xml: 892; fortran: 664; cs: 573
file content (90 lines) | stat: -rw-r--r-- 3,129 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2
; RUN: opt -S -passes=jump-threading < %s | FileCheck %s

; Make sure we don't crash while trying to calculate the object size of an
; empty phi node.

define void @test(i16 %arg) {
; CHECK-LABEL: define void @test
; CHECK-SAME: (i16 [[ARG:%.*]]) {
; CHECK-NEXT:  start:
; CHECK-NEXT:    br label [[BB8THREAD_PRE_SPLIT1:%.*]]
; CHECK:       bb8thread-pre-split1:
; CHECK-NEXT:    [[LOAD_PR_PR:%.*]] = load i16, ptr null, align 2
; CHECK-NEXT:    br label [[BB8:%.*]]
; CHECK:       bb8:
; CHECK-NEXT:    [[LOAD_PR:%.*]] = phi i16 [ [[LOAD_PR_PR]], [[BB8THREAD_PRE_SPLIT1]] ], [ [[LOAD_PR]], [[BB8]] ]
; CHECK-NEXT:    [[I:%.*]] = icmp eq i16 [[LOAD_PR]], 0
; CHECK-NEXT:    br i1 [[I]], label [[BB10:%.*]], label [[BB8]]
; CHECK:       bb10:
; CHECK-NEXT:    [[I1:%.*]] = getelementptr { i128, i8 }, ptr null, i64 0, i32 1
; CHECK-NEXT:    store i8 0, ptr [[I1]], align 8
; CHECK-NEXT:    [[I2:%.*]] = load i128, ptr null, align 8
; CHECK-NEXT:    [[I3:%.*]] = icmp eq i128 [[I2]], 0
; CHECK-NEXT:    br i1 [[I3]], label [[BB8THREAD_PRE_SPLIT1]], label [[BB8THREAD_PRE_SPLIT1]]
;
start:
  br label %bb5

bb20:                                             ; preds = %bb19, %bb17, %bb17, %bb14, %bb13
  ret void

bb5:                                              ; preds = %bb16, %bb10, %bb10, %bb8, %start
  %_11.0 = phi ptr [ %_11.5, %bb16 ], [ null, %bb10 ], [ null, %bb8 ], [ null, %bb10 ], [ null, %start ]
  br label %bb8

bb8:                                              ; preds = %bb15, %bb9, %bb5
  %load = load i16, ptr null, align 2
  %i = icmp eq i16 %load, 0
  br i1 %i, label %bb9, label %bb5

bb9:                                              ; preds = %bb8
  switch i16 %load, label %bb8 [
  i16 1, label %bb10
  i16 0, label %bb13
  ]

bb10:                                             ; preds = %bb14, %bb13, %bb9
  %_2.7 = phi ptr [ %_11.0, %bb14 ], [ %_11.0, %bb13 ], [ null, %bb9 ]
  %i1 = getelementptr { i128, i8 }, ptr %_11.0, i64 0, i32 1
  store i8 0, ptr %i1, align 8
  %i2 = load i128, ptr %_2.7, align 8
  %i3 = icmp eq i128 %i2, 0
  br i1 %i3, label %bb5, label %bb5

bb13:                                             ; preds = %bb14, %bb9
  switch i128 0, label %bb20 [
  i128 0, label %bb10
  i128 1, label %bb14
  ]

bb14:                                             ; preds = %bb19, %bb13
  switch i16 %arg, label %bb20 [
  i16 0, label %bb13
  i16 2, label %bb10
  i16 1, label %bb15
  ]

bb15:                                             ; preds = %bb14
  switch i16 %arg, label %bb16 [
  i16 1, label %bb8
  i16 0, label %bb17
  ]

bb16:                                             ; preds = %bb19, %bb15
  %_11.5 = phi ptr [ null, %bb15 ], [ null, %bb19 ]
  br label %bb5

bb17:                                             ; preds = %bb19, %bb15
  switch i16 %arg, label %bb20 [
  i16 0, label %bb20
  i16 1, label %bb19
  ]

bb19:                                             ; preds = %bb17
  switch i16 %arg, label %bb16 [
  i16 0, label %bb14
  i16 1, label %bb20
  i16 6570, label %bb17
  ]
}