128 lines · plain
1; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 -verify-machineinstrs | FileCheck %s2;3; Test that foldMemoryOperandImpl() doesn't drop subreg / read-undef flags.4 5 6define void @fun_llvm_stress_reduced(ptr, ptr, ptr, i64, i8) {7; CHECK: .text8BB:9 %A4 = alloca <4 x i64>10 %A1 = alloca <8 x i1>11 %E6 = extractelement <4 x i1> undef, i32 312 %L23 = load i8, ptr %013 %B27 = fmul double 0x59A989483BA7E0C6, undef14 %L30 = load i16, ptr undef15 store i16 -11933, ptr undef16 %L46 = load i16, ptr undef17 %L61 = load i16, ptr undef18 %Sl74 = select i1 undef, i1 undef, i1 true19 br label %CF84620 21CF846: ; preds = %CF877, %BB22 %I86 = insertelement <4 x i1> undef, i1 undef, i32 023 %Cmp89 = icmp ne i64 undef, %324 %L90 = load i16, ptr undef25 %Shuff92 = shufflevector <4 x i16> zeroinitializer, <4 x i16> zeroinitializer, <4 x i32> <i32 0, i32 2, i32 undef, i32 6>26 br label %CF87727 28CF877: ; preds = %CF84629 store i16 %L61, ptr undef30 %Cmp110 = icmp eq i16 %L61, undef31 br i1 %Cmp110, label %CF846, label %CF86232 33CF862: ; preds = %CF87734 %I114 = insertelement <4 x i64> zeroinitializer, i64 0, i32 035 %B115 = shl <4 x i64> zeroinitializer, %I11436 %Sl124 = select i1 true, ptr %A1, ptr %A137 %B130 = frem double %B27, 0x59A989483BA7E0C638 %E143 = extractelement <4 x i64> %B115, i32 139 %Sl148 = select i1 %Cmp89, <1 x i32> undef, <1 x i32> zeroinitializer40 br label %CF85541 42CF855: ; preds = %CF855, %CF86243 %Sl171 = select i1 %Sl74, i1 %E6, i1 undef44 br i1 %Sl171, label %CF855, label %CF87445 46CF874: ; preds = %CF85547 %L196 = load i16, ptr undef48 %B207 = or i8 %4, %L2349 %L211 = load <8 x i1>, ptr %Sl12450 %B215 = fdiv double 0x8421A9C0D21F6D3E, %B13051 %L218 = load i16, ptr %152 %Sl223 = select i1 %Sl171, <4 x i1> %I86, <4 x i1> undef53 br label %CF82654 55CF826: ; preds = %CF866, %CF910, %CF87456 %B245 = ashr i16 -11933, %L4657 br label %CF91058 59CF910: ; preds = %CF82660 %L257 = load i8, ptr %061 %BC262 = bitcast i64 %E143 to double62 store i16 %L196, ptr %163 %E266 = extractelement <4 x i16> %Shuff92, i32 064 %Sl271 = select i1 %Cmp89, i1 %Cmp89, i1 %Cmp11065 br i1 %Sl271, label %CF826, label %CF86666 67CF866: ; preds = %CF91068 store i64 %E143, ptr %269 %I276 = insertelement <4 x double> undef, double %BC262, i32 370 %L281 = load <8 x i1>, ptr %Sl12471 %E282 = extractelement <4 x i1> zeroinitializer, i32 272 br i1 %E282, label %CF826, label %CF84873 74CF848: ; preds = %CF86675 %Cmp288 = fcmp olt <4 x double> undef, %I27676 %FC294 = fptosi double undef to i1677 %Cmp296 = icmp ule i16 %FC294, %B24578 store i16 %L218, ptr undef79 store i8 %L23, ptr %080 %E320 = extractelement <4 x i1> %Sl223, i32 181 %Cmp345 = icmp uge <1 x i32> undef, %Sl14882 store i16 %L196, ptr %183 br label %CF89384 85CF893: ; preds = %CF893, %CF84886 %Cmp361 = fcmp uge float undef, undef87 br i1 %Cmp361, label %CF893, label %CF90688 89CF906: ; preds = %CF89390 store i16 -11933, ptr undef91 %Shuff379 = shufflevector <1 x i1> undef, <1 x i1> %Cmp345, <1 x i32> <i32 1>92 br label %CF85093 94CF850: ; preds = %CF850, %CF90695 br i1 undef, label %CF850, label %CF92596 97CF925: ; preds = %CF85098 store i16 %E266, ptr %199 %Cmp413 = icmp ugt i8 %L257, undef100 store i16 %L30, ptr %1101 %Sl420 = select i1 %Sl171, <8 x i1> undef, <8 x i1> %L281102 store i16 %L90, ptr undef103 %FC469 = uitofp i1 %Cmp296 to float104 store i1 %Cmp413, ptr %Sl124105 br label %CF833106 107CF833: ; preds = %CF833, %CF925108 store i8 %B207, ptr %0109 %E509 = extractelement <8 x i1> %L211, i32 7110 br i1 %E509, label %CF833, label %CF882111 112CF882: ; preds = %CF833113 store i1 %Sl271, ptr %Sl124114 br label %CF852115 116CF852: ; preds = %CF896, %CF882117 store i1 %Sl74, ptr %Sl124118 br label %CF896119 120CF896: ; preds = %CF852121 %E576 = extractelement <4 x i1> %Cmp288, i32 3122 br i1 %E576, label %CF852, label %CF890123 124CF890: ; preds = %CF896125 %Sl581 = select i1 undef, float undef, float %FC469126 unreachable127}128