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