[ARM] Split large truncating MVE stores
[llvm-complete.git] / test / Analysis / MemorySSA / pr41254.ll
blobc8b21449bce3b0e174b71c26d6732b0c20147bf2
1 ; RUN: opt -licm -enable-mssa-loop-dependency -verify-memoryssa -S < %s | FileCheck %s
2 ; REQUIRES: asserts
4 target datalayout = "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-v128:64-a:8:16-n32:64"
5 target triple = "s390x-ibm-linux"
7 @g_328 = external dso_local local_unnamed_addr global { i32, i16, i32, i8, i8, i32, i32 }, align 4
9 define dso_local void @func_45() local_unnamed_addr {
10 ; CHECK-LABEL: @func_45()
11 bb:
12   br label %bb7
14 bb7:                                              ; preds = %bb
15   br label %bb8
17 bb8:                                              ; preds = %bb80, %bb7
18   %tmp10 = load i32, i32* getelementptr inbounds ({ i32, i16, i32, i8, i8, i32, i32 }, { i32, i16, i32, i8, i8, i32, i32 }* @g_328, i64 0, i32 5), align 4
19   %0 = or i32 %tmp10, 9
20   store i32 %0, i32* getelementptr inbounds ({ i32, i16, i32, i8, i8, i32, i32 }, { i32, i16, i32, i8, i8, i32, i32 }* @g_328, i64 0, i32 5), align 4
21   br label %bb41.preheader.preheader
23 bb41.preheader.preheader:                         ; preds = %bb80.thread, %bb8
24   br label %bb68
26 bb84.thread.split.loop.exit67:                    ; preds = %bb71.1
27   br label %bb84.thread
29 bb84.thread.split.loop.exit71:                    ; preds = %bb71.2
30   br label %bb84.thread
32 bb84.thread.split.loop.exit91:                    ; preds = %bb71.1.2
33   br label %bb84.thread
35 bb84.thread:                                      ; preds = %bb84.thread.split.loop.exit91, %bb84.thread.split.loop.exit71, %bb84.thread.split.loop.exit67
36   unreachable
38 bb68:                                             ; preds = %bb41.preheader.preheader
39   br i1 false, label %bb71, label %bb80
41 bb71:                                             ; preds = %bb68
42   br label %bb71.1
44 bb80.thread:                                      ; preds = %bb71.1.2
45   br label %bb41.preheader.preheader
47 bb80:                                             ; preds = %bb68
48   br label %bb8
50 bb71.1:                                           ; preds = %bb71
51   br i1 true, label %bb84.thread.split.loop.exit67, label %bb71.2
53 bb71.2:                                           ; preds = %bb71.1
54   br i1 true, label %bb84.thread.split.loop.exit71, label %bb71.145
56 bb71.145:                                         ; preds = %bb71.2
57   br label %bb71.1.2
59 bb71.1.2:                                         ; preds = %bb71.145
60   br i1 true, label %bb84.thread.split.loop.exit91, label %bb80.thread