xref: /llvm-project/llvm/test/Analysis/MemorySSA/pr41254.ll (revision a11faeed446882a81e79d780125d93e7199df645)
1; RUN: opt -passes=licm -verify-memoryssa -S < %s | FileCheck %s
2; REQUIRES: asserts
3
4target datalayout = "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-v128:64-a:8:16-n32:64"
5target triple = "s390x-ibm-linux"
6
7@g_328 = external dso_local local_unnamed_addr global { i32, i16, i32, i8, i8, i32, i32 }, align 4
8
9define dso_local void @func_45() local_unnamed_addr {
10; CHECK-LABEL: @func_45()
11bb:
12  br label %bb7
13
14bb7:                                              ; preds = %bb
15  br label %bb8
16
17bb8:                                              ; preds = %bb80, %bb7
18  %tmp10 = load i32, ptr getelementptr inbounds ({ i32, i16, i32, i8, i8, i32, i32 }, ptr @g_328, i64 0, i32 5), align 4
19  %0 = or i32 %tmp10, 9
20  store i32 %0, ptr getelementptr inbounds ({ i32, i16, i32, i8, i8, i32, i32 }, ptr @g_328, i64 0, i32 5), align 4
21  br label %bb41.preheader.preheader
22
23bb41.preheader.preheader:                         ; preds = %bb80.thread, %bb8
24  br label %bb68
25
26bb84.thread.split.loop.exit67:                    ; preds = %bb71.1
27  br label %bb84.thread
28
29bb84.thread.split.loop.exit71:                    ; preds = %bb71.2
30  br label %bb84.thread
31
32bb84.thread.split.loop.exit91:                    ; preds = %bb71.1.2
33  br label %bb84.thread
34
35bb84.thread:                                      ; preds = %bb84.thread.split.loop.exit91, %bb84.thread.split.loop.exit71, %bb84.thread.split.loop.exit67
36  unreachable
37
38bb68:                                             ; preds = %bb41.preheader.preheader
39  br i1 false, label %bb71, label %bb80
40
41bb71:                                             ; preds = %bb68
42  br label %bb71.1
43
44bb80.thread:                                      ; preds = %bb71.1.2
45  br label %bb41.preheader.preheader
46
47bb80:                                             ; preds = %bb68
48  br label %bb8
49
50bb71.1:                                           ; preds = %bb71
51  br i1 true, label %bb84.thread.split.loop.exit67, label %bb71.2
52
53bb71.2:                                           ; preds = %bb71.1
54  br i1 true, label %bb84.thread.split.loop.exit71, label %bb71.145
55
56bb71.145:                                         ; preds = %bb71.2
57  br label %bb71.1.2
58
59bb71.1.2:                                         ; preds = %bb71.145
60  br i1 true, label %bb84.thread.split.loop.exit91, label %bb80.thread
61}
62
63