brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.4 KiB · 988d107 Raw
230 lines · plain
1; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 -verify-machineinstrs -disable-lsr | FileCheck %s2;3; Regression test for a machine verifier complaint discovered with llvm-stress.4; Test that splitting of a 128 bit store does not result in use of undef phys reg.5; This test case involved spilling of 128 bits, where the data operand was killed.6 7define void @autogen_SD15107(ptr, ptr, ptr, i32, i64, i8) {8; CHECK: .text9BB:10  %A4 = alloca double11  %A1 = alloca i3212  %L = load i8, ptr %013  br label %CF33114 15CF331:                                            ; preds = %CF331, %BB16  %Shuff = shufflevector <8 x i8> zeroinitializer, <8 x i8> zeroinitializer, <8 x i32> <i32 undef, i32 undef, i32 1, i32 3, i32 5, i32 7, i32 9, i32 11>17  %L5 = load i8, ptr %018  %FC9 = fptosi float 0xC59D259100000000 to i819  %Shuff13 = shufflevector <8 x i64> zeroinitializer, <8 x i64> zeroinitializer, <8 x i32> <i32 10, i32 undef, i32 14, i32 0, i32 undef, i32 4, i32 6, i32 8>20  %Tr = trunc <8 x i16> zeroinitializer to <8 x i1>21  %Sl16 = select i1 true, i64 448097, i64 25397722  %E18 = extractelement <2 x i1> zeroinitializer, i32 123  br i1 %E18, label %CF331, label %CF35024 25CF350:                                            ; preds = %CF33126  %Cmp22 = icmp slt i8 %L, -127  br label %CF28 29CF:                                               ; preds = %CF333, %CF364, %CF, %CF35030  %Shuff25 = shufflevector <16 x i1> zeroinitializer, <16 x i1> zeroinitializer, <16 x i32> <i32 25, i32 27, i32 29, i32 31, i32 1, i32 undef, i32 undef, i32 7, i32 9, i32 11, i32 undef, i32 15, i32 17, i32 19, i32 21, i32 23>31  %B27 = mul <8 x i8> zeroinitializer, %Shuff32  %L31 = load i8, ptr %033  store i8 %L5, ptr %034  %E32 = extractelement <8 x i64> %Shuff13, i32 535  %Sl37 = select i1 %E18, ptr %2, ptr %236  %E40 = extractelement <8 x i64> %Shuff13, i32 437  %I42 = insertelement <8 x i64> %Shuff13, i64 0, i32 138  %Sl44 = select i1 true, ptr %A4, ptr %A439  %L46 = load i64, ptr %Sl3740  br i1 undef, label %CF, label %CF33541 42CF335:                                            ; preds = %CF335, %CF43  %Shuff48 = shufflevector <8 x i16> zeroinitializer, <8 x i16> zeroinitializer, <8 x i32> <i32 undef, i32 15, i32 undef, i32 3, i32 5, i32 7, i32 9, i32 11>44  %B50 = sub <8 x i64> undef, zeroinitializer45  %Se = sext i1 %Cmp22 to i6446  %Cmp52 = icmp ule i64 %E40, 18465347  br i1 %Cmp52, label %CF335, label %CF36448 49CF364:                                            ; preds = %CF33550  store i64 %E32, ptr %Sl3751  %B57 = udiv <8 x i64> %I42, %B5052  %L61 = load i64, ptr %Sl3753  %Sl65 = select i1 undef, i1 %Cmp52, i1 true54  br i1 %Sl65, label %CF, label %CF33355 56CF333:                                            ; preds = %CF36457  %Cmp66 = fcmp uge float 0x474A237E00000000, undef58  br i1 %Cmp66, label %CF, label %CF32459 60CF324:                                            ; preds = %CF358, %CF360, %CF33361  %L67 = load i64, ptr %Sl3762  %Sl73 = select i1 %E18, i8 %L, i8 %L3163  %ZE = zext i1 true to i3264  %Cmp81 = icmp ult i64 184653, %L4665  br label %CF34666 67CF346:                                            ; preds = %CF363, %CF346, %CF32468  %L82 = load double, ptr %Sl4469  store i64 %Se, ptr %Sl3770  br i1 undef, label %CF346, label %CF36371 72CF363:                                            ; preds = %CF34673  %I85 = insertelement <8 x i64> undef, i64 0, i32 474  %Se86 = sext i1 %Cmp81 to i6475  %Cmp88 = icmp eq <16 x i1> zeroinitializer, undef76  %Shuff91 = shufflevector <8 x i64> %B57, <8 x i64> %I42, <8 x i32> <i32 1, i32 undef, i32 5, i32 7, i32 undef, i32 11, i32 13, i32 undef>77  %Sl95 = select i1 undef, i8 -1, i8 %578  store i8 %FC9, ptr %079  %Sl102 = select i1 %Sl65, float 0x3AAFABC380000000, float undef80  %L104 = load i64, ptr %Sl3781  store i8 %Sl95, ptr %082  br i1 undef, label %CF346, label %CF36083 84CF360:                                            ; preds = %CF36385  %I107 = insertelement <16 x i1> undef, i1 %Sl65, i32 386  %B108 = fdiv float undef, %Sl10287  %FC109 = sitofp <16 x i1> %Shuff25 to <16 x float>88  %Cmp111 = icmp slt i8 %Sl73, %Sl9589  br i1 %Cmp111, label %CF324, label %CF34490 91CF344:                                            ; preds = %CF344, %CF36092  store i64 %4, ptr %Sl3793  br i1 undef, label %CF344, label %CF35894 95CF358:                                            ; preds = %CF34496  %B116 = add i8 29, %597  %Sl118 = select i1 %Cmp81, <8 x i1> undef, <8 x i1> %Tr98  %L120 = load i16, ptr undef99  store i8 %FC9, ptr %0100  %E121 = extractelement <16 x i1> %Shuff25, i32 3101  br i1 %E121, label %CF324, label %CF325102 103CF325:                                            ; preds = %CF362, %CF358104  %I123 = insertelement <8 x i16> undef, i16 %L120, i32 0105  %Sl125 = select i1 undef, i32 undef, i32 199785106  %Cmp126 = icmp ule <16 x i1> undef, %Cmp88107  br label %CF356108 109CF356:                                            ; preds = %CF356, %CF325110  %FC131 = sitofp <8 x i8> %B27 to <8 x double>111  store i8 %Sl73, ptr %0112  store i64 396197, ptr %Sl37113  %L150 = load i64, ptr %Sl37114  %Cmp157 = icmp ult i64 %L150, %L61115  br i1 %Cmp157, label %CF356, label %CF359116 117CF359:                                            ; preds = %CF359, %CF356118  %B162 = srem <8 x i64> %I85, %Shuff13119  %Tr163 = trunc i64 %Se to i8120  %Sl164 = select i1 %Cmp52, ptr %A1, ptr %1121  store i64 %E32, ptr undef122  %I168 = insertelement <8 x i16> %I123, i16 undef, i32 5123  %Se170 = sext i1 %Cmp81 to i32124  %Cmp172 = icmp uge i8 %Sl73, %Sl73125  br i1 %Cmp172, label %CF359, label %CF362126 127CF362:                                            ; preds = %CF359128  store i16 0, ptr undef129  store i64 448097, ptr %Sl37130  %E189 = extractelement <8 x i16> %Shuff48, i32 6131  %Sl194 = select i1 %Cmp111, i8 29, i8 0132  %Cmp195 = icmp eq i32 %ZE, %ZE133  br i1 %Cmp195, label %CF325, label %CF326134 135CF326:                                            ; preds = %CF342, %CF362136  store i64 %L104, ptr undef137  br label %CF342138 139CF342:                                            ; preds = %CF326140  %Cmp203 = icmp ule i1 %Cmp195, %E18141  br i1 %Cmp203, label %CF326, label %CF337142 143CF337:                                            ; preds = %CF342144  br label %CF327145 146CF327:                                            ; preds = %CF336, %CF355, %CF327, %CF337147  store i64 %Se86, ptr undef148  %Tr216 = trunc i64 184653 to i16149  %Sl217 = select i1 %Cmp157, <4 x i1> undef, <4 x i1> undef150  %Cmp218 = icmp slt i32 undef, %Se170151  br i1 %Cmp218, label %CF327, label %CF355152 153CF355:                                            ; preds = %CF327154  %E220 = extractelement <16 x i1> %Cmp126, i32 3155  br i1 %E220, label %CF327, label %CF340156 157CF340:                                            ; preds = %CF355158  %Sl224 = select i1 %Sl65, double undef, double 0xBE278346AB25A5C4159  br label %CF334160 161CF334:                                            ; preds = %CF343, %CF334, %CF340162  %L226 = load i64, ptr undef163  store i32 %3, ptr %Sl164164  %Cmp233 = icmp uge i16 %Tr216, %L120165  br i1 %Cmp233, label %CF334, label %CF354166 167CF354:                                            ; preds = %CF334168  store i64 %L226, ptr %Sl37169  %Cmp240 = icmp uge i1 %Cmp52, undef170  %Shuff243 = shufflevector <16 x i1> %I107, <16 x i1> undef, <16 x i32> <i32 28, i32 30, i32 undef, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 16, i32 18, i32 20, i32 22, i32 24, i32 undef>171  %B245 = fmul <16 x float> %FC109, %FC109172  br label %CF343173 174CF343:                                            ; preds = %CF354175  %Cmp248 = icmp sgt i8 0, %B116176  br i1 %Cmp248, label %CF334, label %CF336177 178CF336:                                            ; preds = %CF343179  store i64 %E32, ptr undef180  br i1 undef, label %CF327, label %CF328181 182CF328:                                            ; preds = %CF345, %CF336183  br label %CF345184 185CF345:                                            ; preds = %CF328186  %E257 = extractelement <4 x i1> %Sl217, i32 2187  br i1 %E257, label %CF328, label %CF338188 189CF338:                                            ; preds = %CF345190  %Sl261 = select i1 %E121, <8 x i16> zeroinitializer, <8 x i16> undef191  %Cmp262 = icmp sgt i8 undef, %Sl194192  br label %CF329193 194CF329:                                            ; preds = %CF339, %CF348, %CF357, %CF338195  store i64 %L67, ptr %Sl37196  br label %CF357197 198CF357:                                            ; preds = %CF329199  %Cmp275 = icmp ne i1 %Cmp203, %Sl65200  br i1 %Cmp275, label %CF329, label %CF348201 202CF348:                                            ; preds = %CF357203  %Shuff286 = shufflevector <8 x i16> undef, <8 x i16> %Sl261, <8 x i32> <i32 6, i32 8, i32 10, i32 12, i32 undef, i32 0, i32 2, i32 4>204  %Cmp291 = icmp ne i32 %Sl125, undef205  br i1 %Cmp291, label %CF329, label %CF339206 207CF339:                                            ; preds = %CF348208  %Cmp299 = fcmp ugt double %L82, undef209  br i1 %Cmp299, label %CF329, label %CF330210 211CF330:                                            ; preds = %CF361, %CF330, %CF339212  %E301 = extractelement <8 x double> %FC131, i32 3213  store i64 %Sl16, ptr %Sl37214  %Se313 = sext <8 x i1> %Sl118 to <8 x i32>215  %Cmp315 = icmp sgt i8 %Tr163, %L216  br i1 %Cmp315, label %CF330, label %CF361217 218CF361:                                            ; preds = %CF330219  store i16 %L120, ptr undef220  %Shuff318 = shufflevector <8 x i64> %B162, <8 x i64> undef, <8 x i32> <i32 8, i32 10, i32 12, i32 14, i32 0, i32 2, i32 4, i32 6>221  %ZE321 = zext i16 %E189 to i64222  %Sl322 = select i1 %Cmp240, i1 %Cmp262, i1 %Cmp291223  br i1 %Sl322, label %CF330, label %CF351224 225CF351:                                            ; preds = %CF361226  store double %Sl224, ptr %Sl44227  store i32 %ZE, ptr %Sl164228  ret void229}230