brintos

brintos / llvm-project-archived public Read only

0
0
Text · 186.3 KiB · 02a3f34 Raw
6514 lines · plain
1# RUN: llc -run-pass ppc-mi-peepholes -ppc-convert-rr-to-ri %s -o - -verify-machineinstrs | FileCheck %s2# RUN: llc -start-after ppc-mi-peepholes -ppc-late-peephole %s -o - -verify-machineinstrs | FileCheck %s --check-prefix=CHECK-LATE3 4--- |5  ; ModuleID = 'convert-rr-to-ri-instrs.ll'6  source_filename = "convert-rr-to-ri-instrs.c"7  target datalayout = "e-m:e-i64:64-n32:64"8  target triple = "powerpc64le-unknown-linux-gnu"9 10  ; Function Attrs: norecurse nounwind readnone11  define signext i32 @testADD4(i32 signext %a, i32 signext %b) local_unnamed_addr #0 {12  entry:13    %add = add nsw i32 %a, 3314    %add1 = add nsw i32 %add, %b15    ret i32 %add116  }17 18  ; Function Attrs: norecurse nounwind readnone19  define i64 @testADD8(i64 %a, i64 %b) local_unnamed_addr #0 {20  entry:21    %add = add nsw i64 %a, 3322    %add1 = add nsw i64 %add, %b23    ret i64 %add124  }25 26  ; Function Attrs: norecurse nounwind readnone27  define i128 @testADDC(i128 %a, i128 %b) local_unnamed_addr #0 {28  entry:29    %add = add nsw i128 %b, %a30    ret i128 %add31  }32 33  ; Function Attrs: norecurse nounwind readnone34  define i128 @testADDC8(i128 %a, i128 %b) local_unnamed_addr #0 {35  entry:36    %add = add nsw i128 %b, %a37    ret i128 %add38  }39 40  ; Function Attrs: norecurse nounwind readnone41  define i64 @testADDC_rec(i64 %a, i64 %b) local_unnamed_addr #0 {42  entry:43    %add = add nsw i64 %b, %a44    %cmp = icmp eq i64 %add, 045    %neg = sext i1 %cmp to i6446    %retval.0 = xor i64 %add, %neg47    ret i64 %retval.048  }49 50  ; Function Attrs: norecurse nounwind readnone51  define signext i32 @testADDI(i32 signext %a) local_unnamed_addr #0 {52  entry:53    %add = add nsw i32 %a, 4454    ret i32 %add55  }56 57  ; Function Attrs: norecurse nounwind readnone58  define signext i32 @testADDI8(i32 signext %a) local_unnamed_addr #0 {59  entry:60    %add = add nsw i32 %a, 4461    ret i32 %add62  }63 64  ; Function Attrs: norecurse nounwind readnone65  define signext i32 @testAND_rec(i64 %a, i64 %b) local_unnamed_addr #0 {66  entry:67    %and = and i64 %b, %a68    %tobool = icmp eq i64 %and, 069    %cond = select i1 %tobool, i64 %b, i64 %a70    %conv = trunc i64 %cond to i3271    ret i32 %conv72  }73 74  ; Function Attrs: norecurse nounwind readnone75  define i64 @testAND8_rec(i64 %a, i64 %b) local_unnamed_addr #0 {76  entry:77    %and = and i64 %b, %a78    %tobool = icmp eq i64 %and, 079    %cond = select i1 %tobool, i64 %b, i64 %a80    ret i64 %cond81  }82 83  ; Function Attrs: norecurse nounwind readnone84  define i64 @testCMPD(i64 %a, i64 %b) local_unnamed_addr #0 {85  entry:86    %cmp = icmp sgt i64 %a, %b87    %add = select i1 %cmp, i64 0, i64 %a88    %cond = add nsw i64 %add, %b89    ret i64 %cond90  }91 92  ; Function Attrs: norecurse nounwind readnone93  define i64 @testCMPDI(i64 %a, i64 %b) local_unnamed_addr #0 {94  entry:95    %cmp = icmp sgt i64 %a, 8796    %add = select i1 %cmp, i64 0, i64 %a97    %cond = add nsw i64 %add, %b98    ret i64 %cond99  }100 101  ; Function Attrs: norecurse nounwind readnone102  define i64 @testCMPDI_F(i64 %a, i64 %b) local_unnamed_addr #0 {103  entry:104    %cmp = icmp sgt i64 %a, 87105    %add = select i1 %cmp, i64 0, i64 %a106    %cond = add nsw i64 %add, %b107    ret i64 %cond108  }109 110  ; Function Attrs: norecurse nounwind readnone111  define i64 @testCMPLD(i64 %a, i64 %b) local_unnamed_addr #0 {112  entry:113    %cmp = icmp ugt i64 %a, %b114    %add = select i1 %cmp, i64 0, i64 %a115    %cond = add i64 %add, %b116    ret i64 %cond117  }118 119  ; Function Attrs: norecurse nounwind readnone120  define i64 @testCMPLDI(i64 %a, i64 %b) local_unnamed_addr #0 {121  entry:122    %cmp = icmp ugt i64 %a, 87123    %add = select i1 %cmp, i64 0, i64 %a124    %cond = add i64 %add, %b125    ret i64 %cond126  }127 128  ; Function Attrs: norecurse nounwind readnone129  define signext i32 @testCMPW(i32 signext %a, i32 signext %b) local_unnamed_addr #0 {130  entry:131    %cmp = icmp sgt i32 %a, %b132    %add = select i1 %cmp, i32 0, i32 %a133    %cond = add nsw i32 %add, %b134    ret i32 %cond135  }136 137  ; Function Attrs: norecurse nounwind readnone138  define signext i32 @testCMPWI(i32 signext %a, i32 signext %b) local_unnamed_addr #0 {139  entry:140    %cmp = icmp sgt i32 %a, 87141    %add = select i1 %cmp, i32 0, i32 %a142    %cond = add nsw i32 %add, %b143    ret i32 %cond144  }145 146  ; Function Attrs: norecurse nounwind readnone147  define zeroext i32 @testCMPLW(i32 zeroext %a, i32 zeroext %b) local_unnamed_addr #0 {148  entry:149    %cmp = icmp ugt i32 %a, %b150    %add = select i1 %cmp, i32 0, i32 %a151    %cond = add i32 %add, %b152    ret i32 %cond153  }154 155  ; Function Attrs: norecurse nounwind readnone156  define zeroext i32 @testCMPLWI(i32 zeroext %a, i32 zeroext %b) local_unnamed_addr #0 {157  entry:158    %cmp = icmp ugt i32 %a, 87159    %add = select i1 %cmp, i32 0, i32 %a160    %cond = add i32 %add, %b161    ret i32 %cond162  }163 164  ; Function Attrs: norecurse nounwind readonly165  define zeroext i8 @testLBZUX(ptr nocapture readonly %ptr, i32 zeroext %idx) local_unnamed_addr #1 {166  entry:167    %add = add i32 %idx, 1168    %idxprom = zext i32 %add to i64169    %arrayidx = getelementptr inbounds i8, ptr %ptr, i64 %idxprom170    %0 = load i8, ptr %arrayidx, align 1, !tbaa !3171    %conv = zext i8 %0 to i32172    %add1 = add i32 %idx, 2173    %idxprom2 = zext i32 %add1 to i64174    %arrayidx3 = getelementptr inbounds i8, ptr %ptr, i64 %idxprom2175    %1 = load i8, ptr %arrayidx3, align 1, !tbaa !3176    %conv4 = zext i8 %1 to i32177    %add5 = add nuw nsw i32 %conv4, %conv178    %conv6 = trunc i32 %add5 to i8179    ret i8 %conv6180  }181 182  ; Function Attrs: norecurse nounwind readonly183  define zeroext i8 @testLBZX(ptr nocapture readonly %ptr, i32 zeroext %idx) local_unnamed_addr #1 {184  entry:185    %add = add i32 %idx, 1186    %idxprom = zext i32 %add to i64187    %arrayidx = getelementptr inbounds i8, ptr %ptr, i64 %idxprom188    %0 = load i8, ptr %arrayidx, align 1, !tbaa !3189    %conv = zext i8 %0 to i32190    %add1 = add i32 %idx, 2191    %idxprom2 = zext i32 %add1 to i64192    %arrayidx3 = getelementptr inbounds i8, ptr %ptr, i64 %idxprom2193    %1 = load i8, ptr %arrayidx3, align 1, !tbaa !3194    %conv4 = zext i8 %1 to i32195    %add5 = add nuw nsw i32 %conv4, %conv196    %conv6 = trunc i32 %add5 to i8197    ret i8 %conv6198  }199 200  ; Function Attrs: norecurse nounwind readonly201  define zeroext i16 @testLHZUX(ptr nocapture readonly %ptr, i32 zeroext %idx) local_unnamed_addr #1 {202  entry:203    %add = add i32 %idx, 1204    %idxprom = zext i32 %add to i64205    %arrayidx = getelementptr inbounds i16, ptr %ptr, i64 %idxprom206    %0 = load i16, ptr %arrayidx, align 2, !tbaa !6207    %conv = zext i16 %0 to i32208    %add1 = add i32 %idx, 2209    %idxprom2 = zext i32 %add1 to i64210    %arrayidx3 = getelementptr inbounds i16, ptr %ptr, i64 %idxprom2211    %1 = load i16, ptr %arrayidx3, align 2, !tbaa !6212    %conv4 = zext i16 %1 to i32213    %add5 = add nuw nsw i32 %conv4, %conv214    %conv6 = trunc i32 %add5 to i16215    ret i16 %conv6216  }217 218  ; Function Attrs: norecurse nounwind readonly219  define zeroext i16 @testLHZX(ptr nocapture readonly %ptr, i32 zeroext %idx) local_unnamed_addr #1 {220  entry:221    %add = add i32 %idx, 1222    %idxprom = zext i32 %add to i64223    %arrayidx = getelementptr inbounds i16, ptr %ptr, i64 %idxprom224    %0 = load i16, ptr %arrayidx, align 2, !tbaa !6225    %conv = zext i16 %0 to i32226    %add1 = add i32 %idx, 2227    %idxprom2 = zext i32 %add1 to i64228    %arrayidx3 = getelementptr inbounds i16, ptr %ptr, i64 %idxprom2229    %1 = load i16, ptr %arrayidx3, align 2, !tbaa !6230    %conv4 = zext i16 %1 to i32231    %add5 = add nuw nsw i32 %conv4, %conv232    %conv6 = trunc i32 %add5 to i16233    ret i16 %conv6234  }235 236  ; Function Attrs: norecurse nounwind readonly237  define signext i16 @testLHAUX(ptr nocapture readonly %ptr, i32 zeroext %idx) local_unnamed_addr #1 {238  entry:239    %add = add i32 %idx, 1240    %idxprom = zext i32 %add to i64241    %arrayidx = getelementptr inbounds i16, ptr %ptr, i64 %idxprom242    %0 = load i16, ptr %arrayidx, align 2, !tbaa !6243    %conv9 = zext i16 %0 to i32244    %add1 = add i32 %idx, 2245    %idxprom2 = zext i32 %add1 to i64246    %arrayidx3 = getelementptr inbounds i16, ptr %ptr, i64 %idxprom2247    %1 = load i16, ptr %arrayidx3, align 2, !tbaa !6248    %conv410 = zext i16 %1 to i32249    %add5 = add nuw nsw i32 %conv410, %conv9250    %conv6 = trunc i32 %add5 to i16251    ret i16 %conv6252  }253 254  ; Function Attrs: norecurse nounwind readonly255  define signext i16 @testLHAX(ptr nocapture readonly %ptr, i32 zeroext %idx) local_unnamed_addr #1 {256  entry:257    %add = add i32 %idx, 1258    %idxprom = zext i32 %add to i64259    %arrayidx = getelementptr inbounds i16, ptr %ptr, i64 %idxprom260    %0 = load i16, ptr %arrayidx, align 2, !tbaa !6261    %conv9 = zext i16 %0 to i32262    %add1 = add i32 %idx, 2263    %idxprom2 = zext i32 %add1 to i64264    %arrayidx3 = getelementptr inbounds i16, ptr %ptr, i64 %idxprom2265    %1 = load i16, ptr %arrayidx3, align 2, !tbaa !6266    %conv410 = zext i16 %1 to i32267    %add5 = add nuw nsw i32 %conv410, %conv9268    %conv6 = trunc i32 %add5 to i16269    ret i16 %conv6270  }271 272  ; Function Attrs: norecurse nounwind readonly273  define zeroext i32 @testLWZUX(ptr nocapture readonly %ptr, i32 zeroext %idx) local_unnamed_addr #1 {274  entry:275    %add = add i32 %idx, 1276    %idxprom = zext i32 %add to i64277    %arrayidx = getelementptr inbounds i32, ptr %ptr, i64 %idxprom278    %0 = load i32, ptr %arrayidx, align 4, !tbaa !8279    %add1 = add i32 %idx, 2280    %idxprom2 = zext i32 %add1 to i64281    %arrayidx3 = getelementptr inbounds i32, ptr %ptr, i64 %idxprom2282    %1 = load i32, ptr %arrayidx3, align 4, !tbaa !8283    %add4 = add i32 %1, %0284    ret i32 %add4285  }286 287  ; Function Attrs: norecurse nounwind readonly288  define zeroext i32 @testLWZX(ptr nocapture readonly %ptr, i32 zeroext %idx) local_unnamed_addr #1 {289  entry:290    %add = add i32 %idx, 1291    %idxprom = zext i32 %add to i64292    %arrayidx = getelementptr inbounds i32, ptr %ptr, i64 %idxprom293    %0 = load i32, ptr %arrayidx, align 4, !tbaa !8294    %add1 = add i32 %idx, 2295    %idxprom2 = zext i32 %add1 to i64296    %arrayidx3 = getelementptr inbounds i32, ptr %ptr, i64 %idxprom2297    %1 = load i32, ptr %arrayidx3, align 4, !tbaa !8298    %add4 = add i32 %1, %0299    ret i32 %add4300  }301 302  ; Function Attrs: norecurse nounwind readonly303  define i64 @testLWAX(ptr nocapture readonly %ptr, i32 zeroext %idx) local_unnamed_addr #1 {304  entry:305    %add = add i32 %idx, 1306    %idxprom = zext i32 %add to i64307    %arrayidx = getelementptr inbounds i32, ptr %ptr, i64 %idxprom308    %0 = load i32, ptr %arrayidx, align 4, !tbaa !8309    %conv = sext i32 %0 to i64310    %add1 = add i32 %idx, 2311    %idxprom2 = zext i32 %add1 to i64312    %arrayidx3 = getelementptr inbounds i32, ptr %ptr, i64 %idxprom2313    %1 = load i32, ptr %arrayidx3, align 4, !tbaa !8314    %conv4 = sext i32 %1 to i64315    %add5 = add nsw i64 %conv4, %conv316    ret i64 %add5317  }318 319  ; Function Attrs: norecurse nounwind readonly320  define i64 @testLDUX(ptr nocapture readonly %ptr, i32 zeroext %idx) local_unnamed_addr #1 {321  entry:322    %add = add i32 %idx, 1323    %idxprom = zext i32 %add to i64324    %arrayidx = getelementptr inbounds i64, ptr %ptr, i64 %idxprom325    %0 = load i64, ptr %arrayidx, align 8, !tbaa !10326    %add1 = add i32 %idx, 2327    %idxprom2 = zext i32 %add1 to i64328    %arrayidx3 = getelementptr inbounds i64, ptr %ptr, i64 %idxprom2329    %1 = load i64, ptr %arrayidx3, align 8, !tbaa !10330    %add4 = add i64 %1, %0331    ret i64 %add4332  }333 334  ; Function Attrs: norecurse nounwind readonly335  define i64 @testLDX(ptr nocapture readonly %ptr, i32 zeroext %idx) local_unnamed_addr #1 {336  entry:337    %add = add i32 %idx, 1338    %idxprom = zext i32 %add to i64339    %arrayidx = getelementptr inbounds i64, ptr %ptr, i64 %idxprom340    %0 = load i64, ptr %arrayidx, align 8, !tbaa !10341    %add1 = add i32 %idx, 2342    %idxprom2 = zext i32 %add1 to i64343    %arrayidx3 = getelementptr inbounds i64, ptr %ptr, i64 %idxprom2344    %1 = load i64, ptr %arrayidx3, align 8, !tbaa !10345    %add4 = add i64 %1, %0346    ret i64 %add4347  }348 349  ; Function Attrs: norecurse nounwind readonly350  define double @testLFDUX(ptr nocapture readonly %ptr, i32 zeroext %idx) local_unnamed_addr #2 {351  entry:352    %add = add i32 %idx, 1353    %idxprom = zext i32 %add to i64354    %arrayidx = getelementptr inbounds double, ptr %ptr, i64 %idxprom355    %0 = load double, ptr %arrayidx, align 8, !tbaa !12356    %add1 = add i32 %idx, 2357    %idxprom2 = zext i32 %add1 to i64358    %arrayidx3 = getelementptr inbounds double, ptr %ptr, i64 %idxprom2359    %1 = load double, ptr %arrayidx3, align 8, !tbaa !12360    %add4 = fadd double %0, %1361    ret double %add4362  }363 364  ; Function Attrs: norecurse nounwind readonly365  define double @testLFDX(ptr nocapture readonly %ptr, i32 zeroext %idx) local_unnamed_addr #2 {366  entry:367    %add = add i32 %idx, 1368    %idxprom = zext i32 %add to i64369    %arrayidx = getelementptr inbounds double, ptr %ptr, i64 %idxprom370    %0 = load double, ptr %arrayidx, align 8, !tbaa !12371    %add1 = add i32 %idx, 2372    %idxprom2 = zext i32 %add1 to i64373    %arrayidx3 = getelementptr inbounds double, ptr %ptr, i64 %idxprom2374    %1 = load double, ptr %arrayidx3, align 8, !tbaa !12375    %add4 = fadd double %0, %1376    ret double %add4377  }378 379  ; Function Attrs: norecurse nounwind readonly380  define <4 x float> @testLFSUX(ptr nocapture readonly %ptr, i32 signext %idx) local_unnamed_addr #2 {381  entry:382    %idxprom = sext i32 %idx to i64383    %arrayidx = getelementptr inbounds float, ptr %ptr, i64 %idxprom384    %0 = load float, ptr %arrayidx, align 4, !tbaa !14385    %conv = fptoui float %0 to i32386    %vecinit = insertelement <4 x i32> undef, i32 %conv, i32 0387    %1 = bitcast ptr %ptr to ptr388    %2 = shl i64 %idxprom, 2389    %uglygep = getelementptr i8, ptr %1, i64 %2390    %uglygep2 = getelementptr i8, ptr %uglygep, i64 4391    %3 = bitcast ptr %uglygep2 to ptr392    %4 = load float, ptr %3, align 4, !tbaa !14393    %conv3 = fptoui float %4 to i32394    %vecinit4 = insertelement <4 x i32> %vecinit, i32 %conv3, i32 1395    %uglygep5 = getelementptr i8, ptr %uglygep, i64 8396    %5 = bitcast ptr %uglygep5 to ptr397    %6 = load float, ptr %5, align 4, !tbaa !14398    %conv8 = fptoui float %6 to i32399    %vecinit9 = insertelement <4 x i32> %vecinit4, i32 %conv8, i32 2400    %uglygep8 = getelementptr i8, ptr %uglygep, i64 12401    %7 = bitcast ptr %uglygep8 to ptr402    %8 = load float, ptr %7, align 4, !tbaa !14403    %conv13 = fptoui float %8 to i32404    %vecinit14 = insertelement <4 x i32> %vecinit9, i32 %conv13, i32 3405    %9 = bitcast <4 x i32> %vecinit14 to <4 x float>406    ret <4 x float> %9407  }408 409  ; Function Attrs: norecurse nounwind readonly410  define float @testLFSX(ptr nocapture readonly %ptr, i32 zeroext %idx) local_unnamed_addr #2 {411  entry:412    %add = add i32 %idx, 1413    %idxprom = zext i32 %add to i64414    %arrayidx = getelementptr inbounds float, ptr %ptr, i64 %idxprom415    %0 = load float, ptr %arrayidx, align 4, !tbaa !14416    %add1 = add i32 %idx, 2417    %idxprom2 = zext i32 %add1 to i64418    %arrayidx3 = getelementptr inbounds float, ptr %ptr, i64 %idxprom2419    %1 = load float, ptr %arrayidx3, align 4, !tbaa !14420    %add4 = fadd float %0, %1421    ret float %add4422  }423 424  ; Function Attrs: norecurse nounwind readonly425  define double @testLXSDX(ptr nocapture readonly %ptr, i32 zeroext %idx) local_unnamed_addr #1 {426  entry:427    %add = add i32 %idx, 1428    %idxprom = zext i32 %add to i64429    %arrayidx = getelementptr inbounds double, ptr %ptr, i64 %idxprom430    %0 = load double, ptr %arrayidx, align 8, !tbaa !12431    %add1 = add i32 %idx, 2432    %idxprom2 = zext i32 %add1 to i64433    %arrayidx3 = getelementptr inbounds double, ptr %ptr, i64 %idxprom2434    %1 = load double, ptr %arrayidx3, align 8, !tbaa !12435    %add4 = fadd double %0, %1436    ret double %add4437  }438 439  ; Function Attrs: norecurse nounwind readonly440  define float @testLXSSPX(ptr nocapture readonly %ptr, i32 zeroext %idx) local_unnamed_addr #1 {441  entry:442    %add = add i32 %idx, 1443    %idxprom = zext i32 %add to i64444    %arrayidx = getelementptr inbounds float, ptr %ptr, i64 %idxprom445    %0 = load float, ptr %arrayidx, align 4, !tbaa !14446    %add1 = add i32 %idx, 2447    %idxprom2 = zext i32 %add1 to i64448    %arrayidx3 = getelementptr inbounds float, ptr %ptr, i64 %idxprom2449    %1 = load float, ptr %arrayidx3, align 4, !tbaa !14450    %add4 = fadd float %0, %1451    ret float %add4452  }453 454  ; Function Attrs: norecurse nounwind readonly455  define <4 x i32> @testLXVX(ptr nocapture readonly %ptr, i32 zeroext %idx) local_unnamed_addr #1 {456  entry:457    %add = add i32 %idx, 1458    %idxprom = zext i32 %add to i64459    %arrayidx = getelementptr inbounds <4 x i32>, ptr %ptr, i64 %idxprom460    %0 = load <4 x i32>, ptr %arrayidx, align 16, !tbaa !3461    %add1 = add i32 %idx, 2462    %idxprom2 = zext i32 %add1 to i64463    %arrayidx3 = getelementptr inbounds <4 x i32>, ptr %ptr, i64 %idxprom2464    %1 = load <4 x i32>, ptr %arrayidx3, align 16, !tbaa !3465    %add4 = add <4 x i32> %1, %0466    ret <4 x i32> %add4467  }468 469  ; Function Attrs: norecurse nounwind readnone470  define signext i32 @testOR(i32 signext %a, i32 signext %b) local_unnamed_addr #0 {471  entry:472    %or = or i32 %b, %a473    ret i32 %or474  }475 476  ; Function Attrs: norecurse nounwind readnone477  define i64 @testOR8(i64 %a, i64 %b) local_unnamed_addr #0 {478  entry:479    %or = or i64 %b, %a480    ret i64 %or481  }482 483  ; Function Attrs: norecurse nounwind readnone484  define signext i32 @testORI(i32 signext %a) local_unnamed_addr #0 {485  entry:486    %or = or i32 %a, 88487    ret i32 %or488  }489 490  ; Function Attrs: norecurse nounwind readnone491  define i64 @testORI8(i64 %a) local_unnamed_addr #0 {492  entry:493    %or = or i64 %a, 99494    ret i64 %or495  }496 497  ; Function Attrs: norecurse nounwind readnone498  define i64 @testRLDCL(i64 %a, i64 %b) local_unnamed_addr #0 {499  entry:500    %and = and i64 %b, 63501    %shl = shl i64 %a, %and502    %sub = sub nsw i64 64, %and503    %shr = lshr i64 %a, %sub504    %or = or i64 %shr, %shl505    ret i64 %or506  }507 508  ; Function Attrs: norecurse nounwind readnone509  define i64 @testRLDCL_rec(i64 %a, i64 %b) local_unnamed_addr #0 {510  entry:511    %and = and i64 %b, 63512    %shl = shl i64 %a, %and513    %sub = sub nsw i64 64, %and514    %shr = lshr i64 %a, %sub515    %or = or i64 %shr, %shl516    %tobool = icmp eq i64 %or, 0517    %cond = select i1 %tobool, i64 %and, i64 %a518    ret i64 %cond519  }520 521  ; Function Attrs: norecurse nounwind readnone522  define i64 @testRLDCR(i64 %a, i64 %b) local_unnamed_addr #0 {523  entry:524    %and = and i64 %b, 63525    %shl = shl i64 %a, %and526    %sub = sub nsw i64 64, %and527    %shr = lshr i64 %a, %sub528    %or = or i64 %shr, %shl529    ret i64 %or530  }531 532  ; Function Attrs: norecurse nounwind readnone533  define i64 @testRLDCR_rec(i64 %a, i64 %b) local_unnamed_addr #0 {534  entry:535    %and = and i64 %b, 63536    %shl = shl i64 %a, %and537    %sub = sub nsw i64 64, %and538    %shr = lshr i64 %a, %sub539    %or = or i64 %shr, %shl540    %tobool = icmp eq i64 %or, 0541    %cond = select i1 %tobool, i64 %and, i64 %a542    ret i64 %cond543  }544 545  ; Function Attrs: norecurse nounwind readnone546  define i64 @testRLDICL(i64 %a) local_unnamed_addr #0 {547  entry:548    %shr = lshr i64 %a, 11549    %and = and i64 %shr, 16777215550    ret i64 %and551  }552 553  ; Function Attrs: norecurse nounwind readnone554  define i64 @testRLDICL_MB0(i64 %a) local_unnamed_addr #0 {555  entry:556    %shr = lshr i64 %a, 11557    %and = and i64 %shr, 16777215558    ret i64 %and559  }560 561  ; Function Attrs: norecurse nounwind readnone562  define i64 @testRLDICL_rec(i64 %a, i64 %b) local_unnamed_addr #0 {563  entry:564    %shr = lshr i64 %a, 11565    %and = and i64 %shr, 16777215566    %tobool = icmp eq i64 %and, 0567    %cond = select i1 %tobool, i64 %b, i64 %and568    ret i64 %cond569  }570 571  ; Function Attrs: norecurse nounwind readnone572  define i64 @testRLDICL_rec2(i64 %a, i64 %b) local_unnamed_addr #0 {573  entry:574    %shr = lshr i64 %a, 11575    %and = and i64 %shr, 16777215576    %tobool = icmp eq i64 %and, 0577    %cond = select i1 %tobool, i64 %b, i64 %and578    ret i64 %cond579  }580 581  ; Function Attrs: norecurse nounwind readnone582  define i64 @testRLDICL_rec3(i64 %a, i64 %b) local_unnamed_addr #0 {583  entry:584    %shr = lshr i64 %a, 11585    %and = and i64 %shr, 16777215586    %tobool = icmp eq i64 %and, 0587    %cond = select i1 %tobool, i64 %b, i64 %and588    ret i64 %cond589  }590 591  ; Function Attrs: norecurse nounwind readnone592  define zeroext i32 @testRLWINM(i32 zeroext %a) local_unnamed_addr #0 {593  entry:594    %shl = shl i32 %a, 4595    %and = and i32 %shl, 4080596    ret i32 %and597  }598 599  ; Function Attrs: norecurse nounwind readnone600  define zeroext i32 @testRLWINMFullReg(i32 zeroext %a) local_unnamed_addr #0 {601  entry:602    %shl = shl i32 %a, 4603    %and = and i32 %shl, 4080604    ret i32 %and605  }606 607  ; Function Attrs: norecurse nounwind readnone608  define zeroext i32 @testRLWINMFullRegOutOfRange(i32 zeroext %a) local_unnamed_addr #0 {609  entry:610    %shl = shl i32 %a, 4611    %and = and i32 %shl, 4080612    ret i32 %and613  }614 615  ; Function Attrs: norecurse nounwind readnone616  define i64 @testRLWINM8(i64 %a) local_unnamed_addr #0 {617  entry:618    %shl = shl i64 %a, 4619    %and = and i64 %shl, 4080620    ret i64 %and621  }622 623  ; Function Attrs: norecurse nounwind readnone624  define zeroext i32 @testRLWINM_rec(i32 zeroext %a, i32 zeroext %b) local_unnamed_addr #0 {625  entry:626    %and = and i32 %a, 255627    %tobool = icmp eq i32 %and, 0628    %cond = select i1 %tobool, i32 %b, i32 %a629    ret i32 %cond630  }631 632  ; Function Attrs: norecurse nounwind readnone633  define zeroext i32 @testRLWINM_rec2(i32 zeroext %a, i32 zeroext %b) local_unnamed_addr #0 {634  entry:635    %and = and i32 %a, 255636    %tobool = icmp eq i32 %and, 0637    %cond = select i1 %tobool, i32 %b, i32 %a638    ret i32 %cond639  }640 641  ; Function Attrs: norecurse nounwind readnone642  define i64 @testRLWINM8_rec(i64 %a, i64 %b) local_unnamed_addr #0 {643  entry:644    %a.tr = trunc i64 %a to i32645    %0 = shl i32 %a.tr, 4646    %conv = and i32 %0, 4080647    %tobool = icmp eq i32 %conv, 0648    %conv1 = zext i32 %conv to i64649    %cond = select i1 %tobool, i64 %b, i64 %conv1650    ret i64 %cond651  }652 653  ; Function Attrs: norecurse nounwind readnone654  define i64 @testSLD(i64 %a, i64 %b) local_unnamed_addr #0 {655  entry:656    %shl = shl i64 %a, %b657    ret i64 %shl658  }659 660  ; Function Attrs: norecurse nounwind readnone661  define i64 @testSLD_rec(i64 %a, i64 %b) local_unnamed_addr #0 {662  entry:663    %shl = shl i64 %a, %b664    %tobool = icmp eq i64 %shl, 0665    %cond = select i1 %tobool, i64 %b, i64 %a666    ret i64 %cond667  }668 669  ; Function Attrs: norecurse nounwind readnone670  define i64 @testSRD(i64 %a, i64 %b) local_unnamed_addr #0 {671  entry:672    %shr = lshr i64 %a, %b673    ret i64 %shr674  }675 676  ; Function Attrs: norecurse nounwind readnone677  define i64 @testSRD_rec(i64 %a, i64 %b) local_unnamed_addr #0 {678  entry:679    %shr = lshr i64 %a, %b680    %tobool = icmp eq i64 %shr, 0681    %cond = select i1 %tobool, i64 %b, i64 %a682    ret i64 %cond683  }684 685  ; Function Attrs: norecurse nounwind readnone686  define zeroext i32 @testSLW(i32 zeroext %a, i32 zeroext %b) local_unnamed_addr #0 {687  entry:688    %shl = shl i32 %a, %b689    ret i32 %shl690  }691 692  ; Function Attrs: norecurse nounwind readnone693  define zeroext i32 @testSLW_rec(i32 zeroext %a, i32 zeroext %b) local_unnamed_addr #0 {694  entry:695    %shl = shl i32 %a, %b696    %tobool = icmp eq i32 %shl, 0697    %cond = select i1 %tobool, i32 %b, i32 %a698    ret i32 %cond699  }700 701  ; Function Attrs: norecurse nounwind readnone702  define zeroext i32 @testSRW(i32 zeroext %a, i32 zeroext %b) local_unnamed_addr #0 {703  entry:704    %shr = lshr i32 %a, %b705    ret i32 %shr706  }707 708  ; Function Attrs: norecurse nounwind readnone709  define zeroext i32 @testSRW_rec(i32 zeroext %a, i32 zeroext %b) local_unnamed_addr #0 {710  entry:711    %shr = lshr i32 %a, %b712    %tobool = icmp eq i32 %shr, 0713    %cond = select i1 %tobool, i32 %b, i32 %a714    ret i32 %cond715  }716 717  ; Function Attrs: norecurse nounwind readnone718  define signext i32 @testSRAW(i32 signext %a, i32 signext %b) local_unnamed_addr #0 {719  entry:720    %shr = ashr i32 %a, %b721    ret i32 %shr722  }723 724  ; Function Attrs: norecurse nounwind readnone725  define signext i32 @testSRAW_rec(i32 signext %a, i32 signext %b) local_unnamed_addr #0 {726  entry:727    %shr = ashr i32 %a, %b728    %tobool = icmp eq i32 %shr, 0729    %cond = select i1 %tobool, i32 %b, i32 %shr730    ret i32 %cond731  }732 733  ; Function Attrs: norecurse nounwind readnone734  define i64 @testSRAD(i64 %a, i64 %b) local_unnamed_addr #0 {735  entry:736    %shr = ashr i64 %a, %b737    ret i64 %shr738  }739 740  ; Function Attrs: norecurse nounwind readnone741  define i64 @testSRAD_rec(i64 %a, i64 %b) local_unnamed_addr #0 {742  entry:743    %shr = ashr i64 %a, %b744    %tobool = icmp eq i64 %shr, 0745    %cond = select i1 %tobool, i64 %b, i64 %shr746    ret i64 %cond747  }748 749  ; Function Attrs: norecurse nounwind750  define void @testSTBUX(ptr nocapture %ptr, i8 zeroext %a, i32 zeroext %idx) local_unnamed_addr #3 {751  entry:752    %add = add i32 %idx, 1753    %idxprom = zext i32 %add to i64754    %arrayidx = getelementptr inbounds i8, ptr %ptr, i64 %idxprom755    store i8 %a, ptr %arrayidx, align 1, !tbaa !3756    %add1 = add i32 %idx, 2757    %idxprom2 = zext i32 %add1 to i64758    %arrayidx3 = getelementptr inbounds i8, ptr %ptr, i64 %idxprom2759    store i8 %a, ptr %arrayidx3, align 1, !tbaa !3760    ret void761  }762 763  ; Function Attrs: norecurse nounwind764  define void @testSTBX(ptr nocapture %ptr, i8 zeroext %a, i32 zeroext %idx) local_unnamed_addr #3 {765  entry:766    %add = add i32 %idx, 1767    %idxprom = zext i32 %add to i64768    %arrayidx = getelementptr inbounds i8, ptr %ptr, i64 %idxprom769    store i8 %a, ptr %arrayidx, align 1, !tbaa !3770    %add1 = add i32 %idx, 2771    %idxprom2 = zext i32 %add1 to i64772    %arrayidx3 = getelementptr inbounds i8, ptr %ptr, i64 %idxprom2773    store i8 %a, ptr %arrayidx3, align 1, !tbaa !3774    ret void775  }776 777  ; Function Attrs: norecurse nounwind778  define void @testSTHUX(ptr nocapture %ptr, i16 zeroext %a, i32 zeroext %idx) local_unnamed_addr #3 {779  entry:780    %add = add i32 %idx, 1781    %idxprom = zext i32 %add to i64782    %arrayidx = getelementptr inbounds i16, ptr %ptr, i64 %idxprom783    store i16 %a, ptr %arrayidx, align 2, !tbaa !6784    %add1 = add i32 %idx, 2785    %idxprom2 = zext i32 %add1 to i64786    %arrayidx3 = getelementptr inbounds i16, ptr %ptr, i64 %idxprom2787    store i16 %a, ptr %arrayidx3, align 2, !tbaa !6788    ret void789  }790 791  ; Function Attrs: norecurse nounwind792  define void @testSTHX(ptr nocapture %ptr, i16 zeroext %a, i32 zeroext %idx) local_unnamed_addr #3 {793  entry:794    %add = add i32 %idx, 1795    %idxprom = zext i32 %add to i64796    %arrayidx = getelementptr inbounds i16, ptr %ptr, i64 %idxprom797    store i16 %a, ptr %arrayidx, align 1, !tbaa !3798    %add1 = add i32 %idx, 2799    %idxprom2 = zext i32 %add1 to i64800    %arrayidx3 = getelementptr inbounds i16, ptr %ptr, i64 %idxprom2801    store i16 %a, ptr %arrayidx3, align 1, !tbaa !3802    ret void803  }804 805  ; Function Attrs: norecurse nounwind806  define void @testSTWUX(ptr nocapture %ptr, i32 zeroext %a, i32 zeroext %idx) local_unnamed_addr #3 {807  entry:808    %add = add i32 %idx, 1809    %idxprom = zext i32 %add to i64810    %arrayidx = getelementptr inbounds i32, ptr %ptr, i64 %idxprom811    store i32 %a, ptr %arrayidx, align 4, !tbaa !8812    %add1 = add i32 %idx, 2813    %idxprom2 = zext i32 %add1 to i64814    %arrayidx3 = getelementptr inbounds i32, ptr %ptr, i64 %idxprom2815    store i32 %a, ptr %arrayidx3, align 4, !tbaa !8816    ret void817  }818 819  ; Function Attrs: norecurse nounwind820  define void @testSTWX(ptr nocapture %ptr, i32 zeroext %a, i32 zeroext %idx) local_unnamed_addr #3 {821  entry:822    %add = add i32 %idx, 1823    %idxprom = zext i32 %add to i64824    %arrayidx = getelementptr inbounds i32, ptr %ptr, i64 %idxprom825    store i32 %a, ptr %arrayidx, align 4, !tbaa !8826    %add1 = add i32 %idx, 2827    %idxprom2 = zext i32 %add1 to i64828    %arrayidx3 = getelementptr inbounds i32, ptr %ptr, i64 %idxprom2829    store i32 %a, ptr %arrayidx3, align 4, !tbaa !8830    ret void831  }832 833  ; Function Attrs: norecurse nounwind834  define void @testSTDUX(ptr nocapture %ptr, i64 %a, i32 zeroext %idx) local_unnamed_addr #3 {835  entry:836    %add = add i32 %idx, 1837    %idxprom = zext i32 %add to i64838    %arrayidx = getelementptr inbounds i64, ptr %ptr, i64 %idxprom839    store i64 %a, ptr %arrayidx, align 8, !tbaa !10840    %add1 = add i32 %idx, 2841    %idxprom2 = zext i32 %add1 to i64842    %arrayidx3 = getelementptr inbounds i64, ptr %ptr, i64 %idxprom2843    store i64 %a, ptr %arrayidx3, align 8, !tbaa !10844    ret void845  }846 847  ; Function Attrs: norecurse nounwind848  define void @testSTDX(ptr nocapture %ptr, i64 %a, i32 zeroext %idx) local_unnamed_addr #3 {849  entry:850    %add = add i32 %idx, 1851    %idxprom = zext i32 %add to i64852    %arrayidx = getelementptr inbounds i64, ptr %ptr, i64 %idxprom853    store i64 %a, ptr %arrayidx, align 8, !tbaa !10854    %add1 = add i32 %idx, 2855    %idxprom2 = zext i32 %add1 to i64856    %arrayidx3 = getelementptr inbounds i64, ptr %ptr, i64 %idxprom2857    store i64 %a, ptr %arrayidx3, align 8, !tbaa !10858    ret void859  }860 861  ; Function Attrs: norecurse nounwind readonly862  define void @testSTFSX(ptr nocapture %ptr, float %a, i32 zeroext %idx) local_unnamed_addr #2 {863  entry:864    %add = add i32 %idx, 1865    %idxprom = zext i32 %add to i64866    %arrayidx = getelementptr inbounds float, ptr %ptr, i64 %idxprom867    store float %a, ptr %arrayidx, align 4, !tbaa !14868    %add1 = add i32 %idx, 2869    %idxprom2 = zext i32 %add1 to i64870    %arrayidx3 = getelementptr inbounds float, ptr %ptr, i64 %idxprom2871    store float %a, ptr %arrayidx3, align 4, !tbaa !14872    ret void873  }874 875  ; Function Attrs: norecurse nounwind readonly876  define void @testSTFSUX(ptr nocapture %ptr, float %a, i32 zeroext %idx) local_unnamed_addr #2 {877  entry:878    %add = add i32 %idx, 1879    %idxprom = zext i32 %add to i64880    %arrayidx = getelementptr inbounds float, ptr %ptr, i64 %idxprom881    store float %a, ptr %arrayidx, align 4, !tbaa !14882    %add1 = add i32 %idx, 2883    %idxprom2 = zext i32 %add1 to i64884    %arrayidx3 = getelementptr inbounds float, ptr %ptr, i64 %idxprom2885    store float %a, ptr %arrayidx3, align 4, !tbaa !14886    ret void887  }888 889  ; Function Attrs: norecurse nounwind readonly890  define void @testSTFDX(ptr nocapture %ptr, double %a, i32 zeroext %idx) local_unnamed_addr #2 {891  entry:892    %add = add i32 %idx, 1893    %idxprom = zext i32 %add to i64894    %arrayidx = getelementptr inbounds double, ptr %ptr, i64 %idxprom895    store double %a, ptr %arrayidx, align 8, !tbaa !12896    %add1 = add i32 %idx, 2897    %idxprom2 = zext i32 %add1 to i64898    %arrayidx3 = getelementptr inbounds double, ptr %ptr, i64 %idxprom2899    store double %a, ptr %arrayidx3, align 8, !tbaa !12900    ret void901  }902 903  ; Function Attrs: norecurse nounwind readonly904  define void @testSTFDUX(ptr nocapture %ptr, double %a, i32 zeroext %idx) local_unnamed_addr #2 {905  entry:906    %add = add i32 %idx, 1907    %idxprom = zext i32 %add to i64908    %arrayidx = getelementptr inbounds double, ptr %ptr, i64 %idxprom909    store double %a, ptr %arrayidx, align 8, !tbaa !12910    %add1 = add i32 %idx, 2911    %idxprom2 = zext i32 %add1 to i64912    %arrayidx3 = getelementptr inbounds double, ptr %ptr, i64 %idxprom2913    store double %a, ptr %arrayidx3, align 8, !tbaa !12914    ret void915  }916 917  ; Function Attrs: norecurse nounwind918  define void @testSTXSSPX(ptr nocapture %ptr, float %a, i32 zeroext %idx) local_unnamed_addr #3 {919  entry:920    %idxprom = zext i32 %idx to i64921    %arrayidx = getelementptr inbounds float, ptr %ptr, i64 %idxprom922    store float %a, ptr %arrayidx, align 4, !tbaa !14923    ret void924  }925 926  ; Function Attrs: norecurse nounwind927  define void @testSTXSDX(ptr nocapture %ptr, double %a, i32 zeroext %idx) local_unnamed_addr #3 {928  entry:929    %idxprom = zext i32 %idx to i64930    %arrayidx = getelementptr inbounds double, ptr %ptr, i64 %idxprom931    store double %a, ptr %arrayidx, align 8, !tbaa !12932    ret void933  }934 935  ; Function Attrs: norecurse nounwind936  define void @testSTXVX(ptr nocapture %ptr, <4 x i32> %a, i32 zeroext %idx) local_unnamed_addr #3 {937  entry:938    %idxprom = zext i32 %idx to i64939    %arrayidx = getelementptr inbounds <4 x i32>, ptr %ptr, i64 %idxprom940    store <4 x i32> %a, ptr %arrayidx, align 16, !tbaa !3941    ret void942  }943 944  ; Function Attrs: norecurse nounwind readnone945  define i128 @testSUBFC(i128 %a, i128 %b) local_unnamed_addr #0 {946  entry:947    %sub = sub nsw i128 %a, %b948    ret i128 %sub949  }950 951  ; Function Attrs: norecurse nounwind readnone952  define i128 @testSUBFC8(i128 %a, i128 %b) local_unnamed_addr #0 {953  entry:954    %sub = sub nsw i128 %a, %b955    ret i128 %sub956  }957 958  ; Function Attrs: norecurse nounwind readnone959  define signext i32 @testXOR(i32 signext %a, i32 signext %b) local_unnamed_addr #0 {960  entry:961    %xor = xor i32 %b, %a962    ret i32 %xor963  }964 965  ; Function Attrs: norecurse nounwind readnone966  define i64 @testXOR8(i64 %a, i64 %b) local_unnamed_addr #0 {967  entry:968    %xor = xor i64 %b, %a969    ret i64 %xor970  }971 972  ; Function Attrs: norecurse nounwind readnone973  define signext i32 @testXORI(i32 signext %a) local_unnamed_addr #0 {974  entry:975    %xor = xor i32 %a, 17976    ret i32 %xor977  }978 979  ; Function Attrs: norecurse nounwind readnone980  define i64 @testXOR8I(i64 %a) local_unnamed_addr #0 {981  entry:982    %xor = xor i64 %a, 17983    ret i64 %xor984  }985 986  attributes #0 = { norecurse nounwind readnone "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="pwr9" "target-features"="+altivec,+bpermd,+crypto,+direct-move,+extdiv,+htm,+power8-vector,+power9-vector,+vsx" "use-soft-float"="false" }987  attributes #1 = { norecurse nounwind readonly "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="pwr9" "target-features"="+altivec,+bpermd,+crypto,+direct-move,+extdiv,+htm,+power8-vector,+power9-vector,+vsx" "use-soft-float"="false" }988  attributes #2 = { norecurse nounwind readonly "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="pwr9" "target-features"="+altivec,+bpermd,+crypto,+direct-move,+extdiv,+htm,+power8-vector,+power9-vector,-vsx" "use-soft-float"="false" }989  attributes #3 = { norecurse nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="pwr9" "target-features"="+altivec,+bpermd,+crypto,+direct-move,+extdiv,+htm,+power8-vector,+power9-vector,+vsx" "use-soft-float"="false" }990 991  !llvm.module.flags = !{!0, !1}992  !llvm.ident = !{!2}993 994  !0 = !{i32 1, !"wchar_size", i32 4}995  !1 = !{i32 7, !"PIC Level", i32 2}996  !2 = !{!"clang version 6.0.0 (trunk 316067)"}997  !3 = !{!4, !4, i64 0}998  !4 = !{!"omnipotent char", !5, i64 0}999  !5 = !{!"Simple C/C++ TBAA"}1000  !6 = !{!7, !7, i64 0}1001  !7 = !{!"short", !4, i64 0}1002  !8 = !{!9, !9, i64 0}1003  !9 = !{!"int", !4, i64 0}1004  !10 = !{!11, !11, i64 0}1005  !11 = !{!"long long", !4, i64 0}1006  !12 = !{!13, !13, i64 0}1007  !13 = !{!"double", !4, i64 0}1008  !14 = !{!15, !15, i64 0}1009  !15 = !{!"float", !4, i64 0}1010 1011...1012---1013name:            testADD41014# CHECK-ALL: name: testADD41015alignment:       161016exposesReturnsTwice: false1017legalized:       false1018regBankSelected: false1019selected:        false1020tracksRegLiveness: true1021registers:1022  - { id: 0, class: g8rc, preferred-register: '' }1023  - { id: 1, class: g8rc, preferred-register: '' }1024  - { id: 2, class: gprc, preferred-register: '' }1025  - { id: 3, class: gprc, preferred-register: '' }1026  - { id: 4, class: gprc_and_gprc_nor0, preferred-register: '' }1027  - { id: 5, class: gprc, preferred-register: '' }1028  - { id: 6, class: g8rc, preferred-register: '' }1029liveins:1030  - { reg: '$x3', virtual-reg: '%0' }1031  - { reg: '$x4', virtual-reg: '%1' }1032frameInfo:1033  isFrameAddressTaken: false1034  isReturnAddressTaken: false1035  hasStackMap:     false1036  hasPatchPoint:   false1037  stackSize:       01038  offsetAdjustment: 01039  maxAlignment:    01040  adjustsStack:    false1041  hasCalls:        false1042  stackProtector:  ''1043  maxCallFrameSize: 42949672951044  hasOpaqueSPAdjustment: false1045  hasVAStart:      false1046  hasMustTailInVarArgFunc: false1047  savePoint:       []1048  restorePoint:    []1049fixedStack:1050stack:1051constants:1052body:             |1053  bb.0.entry:1054    liveins: $x3, $x41055 1056    %1 = COPY $x41057    %0 = COPY $x31058    %2 = LI 331059    %3 = COPY %0.sub_321060    %4 = ADD4 killed %3, %21061    %5 = ADD4 killed %2, killed %41062    ; CHECK: ADDI killed %3, 331063    ; CHECK: ADDI killed %4, 331064    ; CHECK-LATE: addi 3, 3, 331065    ; CHECK-LATE: addi 3, 3, 331066    %6 = EXTSW_32_64 killed %51067    $x3 = COPY %61068    BLR8 implicit $lr8, implicit $rm, implicit $x31069 1070...1071---1072name:            testADD81073# CHECK-ALL: name: testADD81074alignment:       161075exposesReturnsTwice: false1076legalized:       false1077regBankSelected: false1078selected:        false1079tracksRegLiveness: true1080registers:1081  - { id: 0, class: g8rc, preferred-register: '' }1082  - { id: 1, class: g8rc, preferred-register: '' }1083  - { id: 2, class: g8rc_and_g8rc_nox0, preferred-register: '' }1084  - { id: 3, class: g8rc, preferred-register: '' }1085liveins:1086  - { reg: '$x3', virtual-reg: '%0' }1087  - { reg: '$x4', virtual-reg: '%1' }1088frameInfo:1089  isFrameAddressTaken: false1090  isReturnAddressTaken: false1091  hasStackMap:     false1092  hasPatchPoint:   false1093  stackSize:       01094  offsetAdjustment: 01095  maxAlignment:    01096  adjustsStack:    false1097  hasCalls:        false1098  stackProtector:  ''1099  maxCallFrameSize: 42949672951100  hasOpaqueSPAdjustment: false1101  hasVAStart:      false1102  hasMustTailInVarArgFunc: false1103  savePoint:       []1104  restorePoint:    []1105fixedStack:1106stack:1107constants:1108body:             |1109  bb.0.entry:1110    liveins: $x3, $x41111 1112    %1 = LI8 331113    %0 = COPY $x31114    %2 = ADD8 %0, %11115    %3 = ADD8 killed %1, killed %21116    ; CHECK: ADDI8 killed %0, 331117    ; CHECK: ADDI8 killed %2, 331118    ; CHECK-LATE: addi 3, 3, 331119    ; CHECK-LATE: addi 3, 3, 331120    $x3 = COPY %31121    BLR8 implicit $lr8, implicit $rm, implicit $x31122 1123...1124---1125name:            testADDC1126# CHECK-ALL: name: testADDC1127alignment:       161128exposesReturnsTwice: false1129legalized:       false1130regBankSelected: false1131selected:        false1132tracksRegLiveness: true1133registers:1134  - { id: 0, class: g8rc, preferred-register: '' }1135  - { id: 1, class: g8rc, preferred-register: '' }1136  - { id: 2, class: g8rc, preferred-register: '' }1137  - { id: 3, class: g8rc, preferred-register: '' }1138  - { id: 4, class: gprc, preferred-register: '' }1139  - { id: 5, class: gprc, preferred-register: '' }1140  - { id: 6, class: gprc, preferred-register: '' }1141  - { id: 7, class: g8rc, preferred-register: '' }1142  - { id: 8, class: g8rc, preferred-register: '' }1143liveins:1144  - { reg: '$x3', virtual-reg: '%0' }1145  - { reg: '$x4', virtual-reg: '%1' }1146  - { reg: '$x5', virtual-reg: '%2' }1147  - { reg: '$x6', virtual-reg: '%3' }1148frameInfo:1149  isFrameAddressTaken: false1150  isReturnAddressTaken: false1151  hasStackMap:     false1152  hasPatchPoint:   false1153  stackSize:       01154  offsetAdjustment: 01155  maxAlignment:    01156  adjustsStack:    false1157  hasCalls:        false1158  stackProtector:  ''1159  maxCallFrameSize: 42949672951160  hasOpaqueSPAdjustment: false1161  hasVAStart:      false1162  hasMustTailInVarArgFunc: false1163  savePoint:       []1164  restorePoint:    []1165fixedStack:1166stack:1167constants:1168body:             |1169  bb.0.entry:1170    liveins: $x3, $x4, $x5, $x61171 1172    %3 = COPY $x61173    %2 = COPY $x51174    %1 = COPY $x41175    %0 = COPY $x31176    %4 = COPY %0.sub_321177    %5 = LI 551178    %6 = ADDC %5, %4, implicit-def $carry1179    ; CHECK: ADDIC killed %4, 55, implicit-def $carry1180    ; CHECK-LATE: addic 3, 3, 551181    %7 = ADDE8 %3, %1, implicit-def dead $carry, implicit $carry1182    %8 = EXTSW_32_64 %61183    $x3 = COPY %81184    $x4 = COPY %71185    BLR8 implicit $lr8, implicit $rm, implicit $x3, implicit $x41186 1187...1188---1189name:            testADDC81190# CHECK-ALL: name: testADDC81191alignment:       161192exposesReturnsTwice: false1193legalized:       false1194regBankSelected: false1195selected:        false1196tracksRegLiveness: true1197registers:1198  - { id: 0, class: g8rc, preferred-register: '' }1199  - { id: 1, class: g8rc, preferred-register: '' }1200  - { id: 2, class: g8rc, preferred-register: '' }1201  - { id: 3, class: g8rc, preferred-register: '' }1202  - { id: 4, class: g8rc, preferred-register: '' }1203  - { id: 5, class: g8rc, preferred-register: '' }1204liveins:1205  - { reg: '$x3', virtual-reg: '%0' }1206  - { reg: '$x4', virtual-reg: '%1' }1207  - { reg: '$x5', virtual-reg: '%2' }1208  - { reg: '$x6', virtual-reg: '%3' }1209frameInfo:1210  isFrameAddressTaken: false1211  isReturnAddressTaken: false1212  hasStackMap:     false1213  hasPatchPoint:   false1214  stackSize:       01215  offsetAdjustment: 01216  maxAlignment:    01217  adjustsStack:    false1218  hasCalls:        false1219  stackProtector:  ''1220  maxCallFrameSize: 42949672951221  hasOpaqueSPAdjustment: false1222  hasVAStart:      false1223  hasMustTailInVarArgFunc: false1224  savePoint:       []1225  restorePoint:    []1226fixedStack:1227stack:1228constants:1229body:             |1230  bb.0.entry:1231    liveins: $x3, $x4, $x5, $x61232 1233    %3 = COPY $x61234    %2 = COPY $x51235    %1 = COPY $x41236    %0 = LI8 7771237    %4 = ADDC8 %2, %0, implicit-def $carry1238    ; CHECK: ADDIC8 killed %2, 777, implicit-def $carry1239    ; CHECK-LATE: addic 3, 5, 7771240    %5 = ADDE8 %3, %1, implicit-def dead $carry, implicit $carry1241    $x3 = COPY %41242    $x4 = COPY %51243    BLR8 implicit $lr8, implicit $rm, implicit $x3, implicit $x41244 1245...1246---1247name:            testADDC_rec1248# CHECK-ALL: name: testADDC_rec1249alignment:       161250exposesReturnsTwice: false1251legalized:       false1252regBankSelected: false1253selected:        false1254tracksRegLiveness: true1255registers:1256  - { id: 0, class: g8rc, preferred-register: '' }1257  - { id: 1, class: gprc, preferred-register: '' }1258  - { id: 2, class: gprc, preferred-register: '' }1259  - { id: 3, class: gprc, preferred-register: '' }1260  - { id: 4, class: crrc, preferred-register: '' }1261  - { id: 5, class: crbitrc, preferred-register: '' }1262  - { id: 6, class: g8rc_and_g8rc_nox0, preferred-register: '' }1263  - { id: 7, class: g8rc_and_g8rc_nox0, preferred-register: '' }1264  - { id: 8, class: g8rc, preferred-register: '' }1265liveins:1266  - { reg: '$x3', virtual-reg: '%0' }1267  - { reg: '$x4', virtual-reg: '%1' }1268frameInfo:1269  isFrameAddressTaken: false1270  isReturnAddressTaken: false1271  hasStackMap:     false1272  hasPatchPoint:   false1273  stackSize:       01274  offsetAdjustment: 01275  maxAlignment:    01276  adjustsStack:    false1277  hasCalls:        false1278  stackProtector:  ''1279  maxCallFrameSize: 42949672951280  hasOpaqueSPAdjustment: false1281  hasVAStart:      false1282  hasMustTailInVarArgFunc: false1283  savePoint:       []1284  restorePoint:    []1285fixedStack:1286stack:1287constants:1288body:             |1289  bb.0.entry:1290    liveins: $x3, $x41291 1292    %1 = LI 4331293    %0 = COPY $x31294    %2 = COPY %0.sub_321295    %3 = ADDC_rec %1, %2, implicit-def $cr0, implicit-def $carry1296    ; CHECK: ADDIC_rec killed %2, 433, implicit-def $cr0, implicit-def dead $carry1297    ; CHECK-LATE: addic. 3, 3, 4331298    %4 = COPY killed $cr01299    %5 = COPY %4.sub_eq1300    %6 = LI8 01301    %7 = LI8 -11302    %8 = ISEL8 %7, %6, %51303    $x3 = COPY %81304    BLR8 implicit $lr8, implicit $rm, implicit $x31305 1306...1307---1308name:            testADDI1309# CHECK-ALL: name: testADDI1310alignment:       161311exposesReturnsTwice: false1312legalized:       false1313regBankSelected: false1314selected:        false1315tracksRegLiveness: true1316registers:1317  - { id: 0, class: g8rc, preferred-register: '' }1318  - { id: 1, class: gprc_and_gprc_nor0, preferred-register: '' }1319  - { id: 2, class: gprc, preferred-register: '' }1320  - { id: 3, class: g8rc, preferred-register: '' }1321liveins:1322  - { reg: '$x3', virtual-reg: '%0' }1323frameInfo:1324  isFrameAddressTaken: false1325  isReturnAddressTaken: false1326  hasStackMap:     false1327  hasPatchPoint:   false1328  stackSize:       01329  offsetAdjustment: 01330  maxAlignment:    01331  adjustsStack:    false1332  hasCalls:        false1333  stackProtector:  ''1334  maxCallFrameSize: 42949672951335  hasOpaqueSPAdjustment: false1336  hasVAStart:      false1337  hasMustTailInVarArgFunc: false1338  savePoint:       []1339  restorePoint:    []1340fixedStack:1341stack:1342constants:1343body:             |1344  bb.0.entry:1345    liveins: $x31346 1347    %0 = COPY $x31348    %1 = LI 771349    %2 = ADDI killed %1, 441350    %3 = EXTSW_32_64 killed %21351    ; CHECK: LI8 1211352    ; CHECK-LATE: li 3, 1211353    $x3 = COPY %31354    BLR8 implicit $lr8, implicit $rm, implicit $x31355 1356...1357---1358name:            testADDI81359# CHECK-ALL: name: testADDI81360alignment:       161361exposesReturnsTwice: false1362legalized:       false1363regBankSelected: false1364selected:        false1365tracksRegLiveness: true1366registers:1367  - { id: 0, class: g8rc, preferred-register: '' }1368  - { id: 1, class: g8rc_and_g8rc_nox0, preferred-register: '' }1369  - { id: 2, class: g8rc, preferred-register: '' }1370  - { id: 3, class: g8rc, preferred-register: '' }1371liveins:1372  - { reg: '$x3', virtual-reg: '%0' }1373frameInfo:1374  isFrameAddressTaken: false1375  isReturnAddressTaken: false1376  hasStackMap:     false1377  hasPatchPoint:   false1378  stackSize:       01379  offsetAdjustment: 01380  maxAlignment:    01381  adjustsStack:    false1382  hasCalls:        false1383  stackProtector:  ''1384  maxCallFrameSize: 42949672951385  hasOpaqueSPAdjustment: false1386  hasVAStart:      false1387  hasMustTailInVarArgFunc: false1388  savePoint:       []1389  restorePoint:    []1390fixedStack:1391stack:1392constants:1393body:             |1394  bb.0.entry:1395    liveins: $x31396 1397    %0 = COPY $x31398    %1 = LI8 3331399    %2 = ADDI8 killed %1, 441400    ; CHECK: LI8 3771401    ; CHECK-LATE: li 3, 3771402    %3 = EXTSW killed %21403    $x3 = COPY %31404    BLR8 implicit $lr8, implicit $rm, implicit $x31405 1406...1407---1408name:            testAND_rec1409# CHECK-ALL: name: testAND_rec1410alignment:       161411exposesReturnsTwice: false1412legalized:       false1413regBankSelected: false1414selected:        false1415tracksRegLiveness: true1416registers:1417  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }1418  - { id: 1, class: gprc, preferred-register: '' }1419  - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }1420  - { id: 3, class: gprc, preferred-register: '' }1421  - { id: 4, class: crrc, preferred-register: '' }1422  - { id: 5, class: gprc, preferred-register: '' }1423  - { id: 6, class: g8rc, preferred-register: '' }1424liveins:1425  - { reg: '$x3', virtual-reg: '%0' }1426  - { reg: '$x4', virtual-reg: '%1' }1427frameInfo:1428  isFrameAddressTaken: false1429  isReturnAddressTaken: false1430  hasStackMap:     false1431  hasPatchPoint:   false1432  stackSize:       01433  offsetAdjustment: 01434  maxAlignment:    01435  adjustsStack:    false1436  hasCalls:        false1437  stackProtector:  ''1438  maxCallFrameSize: 42949672951439  hasOpaqueSPAdjustment: false1440  hasVAStart:      false1441  hasMustTailInVarArgFunc: false1442  savePoint:       []1443  restorePoint:    []1444fixedStack:1445stack:1446constants:1447body:             |1448  bb.0.entry:1449    liveins: $x3, $x41450 1451    %1 = LI 781452    %0 = COPY $x31453    %2 = COPY %0.sub_321454    %3 = AND_rec %1, %2, implicit-def $cr01455    ; CHECK: ANDI_rec %2, 78, implicit-def $cr01456    ; CHECK-LATE: andi. 5, 3, 781457    %4 = COPY killed $cr01458    %5 = ISEL %2, %1, %4.sub_eq1459    %6 = EXTSW_32_64 killed %51460    $x3 = COPY %61461    BLR8 implicit $lr8, implicit $rm, implicit $x31462 1463...1464---1465name:            testAND8_rec1466# CHECK-ALL: name: testAND8_rec1467alignment:       161468exposesReturnsTwice: false1469legalized:       false1470regBankSelected: false1471selected:        false1472tracksRegLiveness: true1473registers:1474  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }1475  - { id: 1, class: g8rc_and_g8rc_nox0, preferred-register: '' }1476  - { id: 2, class: g8rc, preferred-register: '' }1477  - { id: 3, class: crrc, preferred-register: '' }1478  - { id: 4, class: g8rc, preferred-register: '' }1479liveins:1480  - { reg: '$x3', virtual-reg: '%0' }1481  - { reg: '$x4', virtual-reg: '%1' }1482frameInfo:1483  isFrameAddressTaken: false1484  isReturnAddressTaken: false1485  hasStackMap:     false1486  hasPatchPoint:   false1487  stackSize:       01488  offsetAdjustment: 01489  maxAlignment:    01490  adjustsStack:    false1491  hasCalls:        false1492  stackProtector:  ''1493  maxCallFrameSize: 42949672951494  hasOpaqueSPAdjustment: false1495  hasVAStart:      false1496  hasMustTailInVarArgFunc: false1497  savePoint:       []1498  restorePoint:    []1499fixedStack:1500stack:1501constants:1502body:             |1503  bb.0.entry:1504    liveins: $x3, $x41505 1506    %1 = LI8 3211507    %0 = COPY $x31508    %2 = AND8_rec %1, %0, implicit-def $cr01509    ; CHECK: ANDI8_rec %0, 321, implicit-def $cr01510    ; CHECK-LATE: andi. 5, 3, 3211511    %3 = COPY killed $cr01512    %4 = ISEL8 %1, %0, %3.sub_eq1513    $x3 = COPY %41514    BLR8 implicit $lr8, implicit $rm, implicit $x31515 1516...1517---1518name:            testCMPD1519# CHECK-ALL: name: testCMPD1520alignment:       161521exposesReturnsTwice: false1522legalized:       false1523regBankSelected: false1524selected:        false1525tracksRegLiveness: true1526registers:1527  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }1528  - { id: 1, class: g8rc, preferred-register: '' }1529  - { id: 2, class: crrc, preferred-register: '' }1530  - { id: 3, class: g8rc_and_g8rc_nox0, preferred-register: '' }1531  - { id: 4, class: g8rc, preferred-register: '' }1532  - { id: 5, class: g8rc, preferred-register: '' }1533liveins:1534  - { reg: '$x3', virtual-reg: '%0' }1535  - { reg: '$x4', virtual-reg: '%1' }1536frameInfo:1537  isFrameAddressTaken: false1538  isReturnAddressTaken: false1539  hasStackMap:     false1540  hasPatchPoint:   false1541  stackSize:       01542  offsetAdjustment: 01543  maxAlignment:    01544  adjustsStack:    false1545  hasCalls:        false1546  stackProtector:  ''1547  maxCallFrameSize: 42949672951548  hasOpaqueSPAdjustment: false1549  hasVAStart:      false1550  hasMustTailInVarArgFunc: false1551  savePoint:       []1552  restorePoint:    []1553fixedStack:1554stack:1555constants:1556body:             |1557  bb.0.entry:1558    liveins: $x3, $x41559 1560    %1 = LI8 655331561    %0 = COPY $x31562    %2 = CMPD %0, %11563    ; CHECK: CMPDI %0, -31564    ; CHECK-LATE: cmpdi 3, -31565    %4 = ISEL8 $zero8, %0, %2.sub_gt1566    %5 = ADD8 killed %4, %11567    $x3 = COPY %51568    BLR8 implicit $lr8, implicit $rm, implicit $x31569 1570...1571---1572name:            testCMPDI1573# CHECK-ALL: name: testCMPDI1574alignment:       161575exposesReturnsTwice: false1576legalized:       false1577regBankSelected: false1578selected:        false1579tracksRegLiveness: true1580registers:1581  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }1582  - { id: 1, class: g8rc, preferred-register: '' }1583  - { id: 2, class: crrc, preferred-register: '' }1584  - { id: 3, class: g8rc_and_g8rc_nox0, preferred-register: '' }1585  - { id: 4, class: g8rc, preferred-register: '' }1586  - { id: 5, class: g8rc, preferred-register: '' }1587liveins:1588  - { reg: '$x3', virtual-reg: '%0' }1589  - { reg: '$x4', virtual-reg: '%1' }1590frameInfo:1591  isFrameAddressTaken: false1592  isReturnAddressTaken: false1593  hasStackMap:     false1594  hasPatchPoint:   false1595  stackSize:       01596  offsetAdjustment: 01597  maxAlignment:    01598  adjustsStack:    false1599  hasCalls:        false1600  stackProtector:  ''1601  maxCallFrameSize: 42949672951602  hasOpaqueSPAdjustment: false1603  hasVAStart:      false1604  hasMustTailInVarArgFunc: false1605  savePoint:       []1606  restorePoint:    []1607fixedStack:1608stack:1609constants:1610body:             |1611  bb.0.entry:1612    liveins: $x3, $x41613 1614    %1 = COPY $x41615    %0 = LI8 891616    %2 = CMPDI %0, 871617    %4 = ISEL8 $zero8, %0, %2.sub_gt1618    ; CHECK: ADDI8 killed %1, 01619    %5 = ADD8 killed %4, %11620    $x3 = COPY %51621    BLR8 implicit $lr8, implicit $rm, implicit $x31622 1623...1624---1625name:            testCMPDI_F1626# CHECK-ALL: name: testCMPDI_F1627alignment:       161628exposesReturnsTwice: false1629legalized:       false1630regBankSelected: false1631selected:        false1632tracksRegLiveness: true1633registers:1634  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }1635  - { id: 1, class: g8rc, preferred-register: '' }1636  - { id: 2, class: crrc, preferred-register: '' }1637  - { id: 3, class: g8rc_and_g8rc_nox0, preferred-register: '' }1638  - { id: 4, class: g8rc, preferred-register: '' }1639  - { id: 5, class: g8rc, preferred-register: '' }1640liveins:1641  - { reg: '$x3', virtual-reg: '%0' }1642  - { reg: '$x4', virtual-reg: '%1' }1643frameInfo:1644  isFrameAddressTaken: false1645  isReturnAddressTaken: false1646  hasStackMap:     false1647  hasPatchPoint:   false1648  stackSize:       01649  offsetAdjustment: 01650  maxAlignment:    01651  adjustsStack:    false1652  hasCalls:        false1653  stackProtector:  ''1654  maxCallFrameSize: 42949672951655  hasOpaqueSPAdjustment: false1656  hasVAStart:      false1657  hasMustTailInVarArgFunc: false1658  savePoint:       []1659  restorePoint:    []1660fixedStack:1661stack:1662constants:1663body:             |1664  bb.0.entry:1665    liveins: $x3, $x41666 1667    %1 = COPY $x41668    %0 = LI8 871669    %2 = CMPDI %0, 871670    %4 = ISEL8 $zero8, %0, %2.sub_gt1671    ; CHECK: COPY killed %01672    %5 = ADD8 killed %4, %11673    $x3 = COPY %51674    BLR8 implicit $lr8, implicit $rm, implicit $x31675 1676...1677---1678name:            testCMPLD1679# CHECK-ALL: name: testCMPLD1680alignment:       161681exposesReturnsTwice: false1682legalized:       false1683regBankSelected: false1684selected:        false1685tracksRegLiveness: true1686registers:1687  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }1688  - { id: 1, class: g8rc, preferred-register: '' }1689  - { id: 2, class: crrc, preferred-register: '' }1690  - { id: 3, class: g8rc_and_g8rc_nox0, preferred-register: '' }1691  - { id: 4, class: g8rc, preferred-register: '' }1692  - { id: 5, class: g8rc, preferred-register: '' }1693liveins:1694  - { reg: '$x3', virtual-reg: '%0' }1695  - { reg: '$x4', virtual-reg: '%1' }1696frameInfo:1697  isFrameAddressTaken: false1698  isReturnAddressTaken: false1699  hasStackMap:     false1700  hasPatchPoint:   false1701  stackSize:       01702  offsetAdjustment: 01703  maxAlignment:    01704  adjustsStack:    false1705  hasCalls:        false1706  stackProtector:  ''1707  maxCallFrameSize: 42949672951708  hasOpaqueSPAdjustment: false1709  hasVAStart:      false1710  hasMustTailInVarArgFunc: false1711  savePoint:       []1712  restorePoint:    []1713fixedStack:1714stack:1715constants:1716body:             |1717  bb.0.entry:1718    liveins: $x3, $x41719 1720    %1 = LI8 991721    %0 = COPY $x31722    %2 = CMPLD %0, %11723    ; CHECK: CMPLDI %0, 991724    ; CHECK-LATE: cmpldi 3, 991725    %4 = ISEL8 $zero8, %0, %2.sub_gt1726    %5 = ADD8 killed %4, %11727    $x3 = COPY %51728    BLR8 implicit $lr8, implicit $rm, implicit $x31729 1730...1731---1732name:            testCMPLDI1733# CHECK-ALL: name: testCMPLDI1734alignment:       161735exposesReturnsTwice: false1736legalized:       false1737regBankSelected: false1738selected:        false1739tracksRegLiveness: true1740registers:1741  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }1742  - { id: 1, class: g8rc, preferred-register: '' }1743  - { id: 2, class: crrc, preferred-register: '' }1744  - { id: 3, class: g8rc_and_g8rc_nox0, preferred-register: '' }1745  - { id: 4, class: g8rc, preferred-register: '' }1746  - { id: 5, class: g8rc, preferred-register: '' }1747liveins:1748  - { reg: '$x3', virtual-reg: '%0' }1749  - { reg: '$x4', virtual-reg: '%1' }1750frameInfo:1751  isFrameAddressTaken: false1752  isReturnAddressTaken: false1753  hasStackMap:     false1754  hasPatchPoint:   false1755  stackSize:       01756  offsetAdjustment: 01757  maxAlignment:    01758  adjustsStack:    false1759  hasCalls:        false1760  stackProtector:  ''1761  maxCallFrameSize: 42949672951762  hasOpaqueSPAdjustment: false1763  hasVAStart:      false1764  hasMustTailInVarArgFunc: false1765  savePoint:       []1766  restorePoint:    []1767fixedStack:1768stack:1769constants:1770body:             |1771  bb.0.entry:1772    liveins: $x3, $x41773 1774    %1 = COPY $x41775    %0 = LI8 655341776    %2 = CMPLDI %0, 655351777    %4 = ISEL8 $zero8, %0, %2.sub_gt1778    ; CHECK: COPY killed %01779    %5 = ADD8 killed %4, %11780    $x3 = COPY %51781    BLR8 implicit $lr8, implicit $rm, implicit $x31782 1783...1784---1785name:            testCMPW1786# CHECK-ALL: name: testCMPW1787alignment:       161788exposesReturnsTwice: false1789legalized:       false1790regBankSelected: false1791selected:        false1792tracksRegLiveness: true1793registers:1794  - { id: 0, class: g8rc, preferred-register: '' }1795  - { id: 1, class: g8rc, preferred-register: '' }1796  - { id: 2, class: gprc, preferred-register: '' }1797  - { id: 3, class: gprc_and_gprc_nor0, preferred-register: '' }1798  - { id: 4, class: crrc, preferred-register: '' }1799  - { id: 5, class: gprc_and_gprc_nor0, preferred-register: '' }1800  - { id: 6, class: gprc, preferred-register: '' }1801  - { id: 7, class: gprc, preferred-register: '' }1802  - { id: 8, class: g8rc, preferred-register: '' }1803liveins:1804  - { reg: '$x3', virtual-reg: '%0' }1805  - { reg: '$x4', virtual-reg: '%1' }1806frameInfo:1807  isFrameAddressTaken: false1808  isReturnAddressTaken: false1809  hasStackMap:     false1810  hasPatchPoint:   false1811  stackSize:       01812  offsetAdjustment: 01813  maxAlignment:    01814  adjustsStack:    false1815  hasCalls:        false1816  stackProtector:  ''1817  maxCallFrameSize: 42949672951818  hasOpaqueSPAdjustment: false1819  hasVAStart:      false1820  hasMustTailInVarArgFunc: false1821  savePoint:       []1822  restorePoint:    []1823fixedStack:1824stack:1825constants:1826body:             |1827  bb.0.entry:1828    liveins: $x3, $x41829 1830    %1 = COPY $x41831    %0 = COPY $x31832    %2 = LI -11833    %3 = COPY %0.sub_321834    %4 = CMPW %3, %21835    ; CHECK: CMPWI %3, -11836    %6 = ISEL $zero, %3, %4.sub_gt1837    %7 = ADD4 killed %6, %21838    %8 = EXTSW_32_64 killed %71839    $x3 = COPY %81840    BLR8 implicit $lr8, implicit $rm, implicit $x31841 1842...1843---1844name:            testCMPWI1845# CHECK-ALL: name: testCMPWI1846alignment:       161847exposesReturnsTwice: false1848legalized:       false1849regBankSelected: false1850selected:        false1851tracksRegLiveness: true1852registers:1853  - { id: 0, class: g8rc, preferred-register: '' }1854  - { id: 1, class: g8rc, preferred-register: '' }1855  - { id: 2, class: gprc, preferred-register: '' }1856  - { id: 3, class: gprc_and_gprc_nor0, preferred-register: '' }1857  - { id: 4, class: crrc, preferred-register: '' }1858  - { id: 5, class: gprc_and_gprc_nor0, preferred-register: '' }1859  - { id: 6, class: gprc, preferred-register: '' }1860  - { id: 7, class: gprc, preferred-register: '' }1861  - { id: 8, class: g8rc, preferred-register: '' }1862liveins:1863  - { reg: '$x3', virtual-reg: '%0' }1864  - { reg: '$x4', virtual-reg: '%1' }1865frameInfo:1866  isFrameAddressTaken: false1867  isReturnAddressTaken: false1868  hasStackMap:     false1869  hasPatchPoint:   false1870  stackSize:       01871  offsetAdjustment: 01872  maxAlignment:    01873  adjustsStack:    false1874  hasCalls:        false1875  stackProtector:  ''1876  maxCallFrameSize: 42949672951877  hasOpaqueSPAdjustment: false1878  hasVAStart:      false1879  hasMustTailInVarArgFunc: false1880  savePoint:       []1881  restorePoint:    []1882fixedStack:1883stack:1884constants:1885body:             |1886  bb.0.entry:1887    liveins: $x3, $x41888 1889    %1 = COPY $x41890    %0 = COPY $x31891    %2 = COPY %1.sub_321892    %3 = LI -31893    %4 = CMPWI %3, 871894    %6 = ISEL $zero, %3, %4.sub_gt1895    ; CHECK: COPY killed %31896    %7 = ADD4 killed %6, killed %21897    %8 = EXTSW_32_64 killed %71898    $x3 = COPY %81899    BLR8 implicit $lr8, implicit $rm, implicit $x31900 1901...1902---1903name:            testCMPLW1904# CHECK-ALL: name: testCMPLW1905alignment:       161906exposesReturnsTwice: false1907legalized:       false1908regBankSelected: false1909selected:        false1910tracksRegLiveness: true1911registers:1912  - { id: 0, class: g8rc, preferred-register: '' }1913  - { id: 1, class: g8rc, preferred-register: '' }1914  - { id: 2, class: gprc, preferred-register: '' }1915  - { id: 3, class: gprc_and_gprc_nor0, preferred-register: '' }1916  - { id: 4, class: crrc, preferred-register: '' }1917  - { id: 5, class: gprc_and_gprc_nor0, preferred-register: '' }1918  - { id: 6, class: gprc, preferred-register: '' }1919  - { id: 7, class: gprc, preferred-register: '' }1920  - { id: 8, class: g8rc, preferred-register: '' }1921  - { id: 9, class: g8rc, preferred-register: '' }1922  - { id: 10, class: g8rc, preferred-register: '' }1923liveins:1924  - { reg: '$x3', virtual-reg: '%0' }1925  - { reg: '$x4', virtual-reg: '%1' }1926frameInfo:1927  isFrameAddressTaken: false1928  isReturnAddressTaken: false1929  hasStackMap:     false1930  hasPatchPoint:   false1931  stackSize:       01932  offsetAdjustment: 01933  maxAlignment:    01934  adjustsStack:    false1935  hasCalls:        false1936  stackProtector:  ''1937  maxCallFrameSize: 42949672951938  hasOpaqueSPAdjustment: false1939  hasVAStart:      false1940  hasMustTailInVarArgFunc: false1941  savePoint:       []1942  restorePoint:    []1943fixedStack:1944stack:1945constants:1946body:             |1947  bb.0.entry:1948    liveins: $x3, $x41949 1950    %1 = COPY $x41951    %0 = COPY $x31952    %2 = LI 327671953    %3 = COPY %0.sub_321954    %4 = CMPLW %3, %21955    ; CHECK: CMPLWI %3, 327671956    ; CHECK-LATE: cmplwi 3, 327671957    %6 = ISEL $zero, %3, %4.sub_gt1958    %7 = ADD4 killed %6, %21959    %9 = IMPLICIT_DEF1960    %8 = INSERT_SUBREG %9, killed %7, 11961    %10 = RLDICL killed %8, 0, 321962    $x3 = COPY %101963    BLR8 implicit $lr8, implicit $rm, implicit $x31964 1965...1966---1967name:            testCMPLWI1968# CHECK-ALL: name: testCMPLWI1969alignment:       161970exposesReturnsTwice: false1971legalized:       false1972regBankSelected: false1973selected:        false1974tracksRegLiveness: true1975registers:1976  - { id: 0, class: g8rc, preferred-register: '' }1977  - { id: 1, class: g8rc, preferred-register: '' }1978  - { id: 2, class: gprc, preferred-register: '' }1979  - { id: 3, class: gprc_and_gprc_nor0, preferred-register: '' }1980  - { id: 4, class: crrc, preferred-register: '' }1981  - { id: 5, class: gprc_and_gprc_nor0, preferred-register: '' }1982  - { id: 6, class: gprc, preferred-register: '' }1983  - { id: 7, class: gprc, preferred-register: '' }1984  - { id: 8, class: g8rc, preferred-register: '' }1985  - { id: 9, class: g8rc, preferred-register: '' }1986  - { id: 10, class: g8rc, preferred-register: '' }1987liveins:1988  - { reg: '$x3', virtual-reg: '%0' }1989  - { reg: '$x4', virtual-reg: '%1' }1990frameInfo:1991  isFrameAddressTaken: false1992  isReturnAddressTaken: false1993  hasStackMap:     false1994  hasPatchPoint:   false1995  stackSize:       01996  offsetAdjustment: 01997  maxAlignment:    01998  adjustsStack:    false1999  hasCalls:        false2000  stackProtector:  ''2001  maxCallFrameSize: 42949672952002  hasOpaqueSPAdjustment: false2003  hasVAStart:      false2004  hasMustTailInVarArgFunc: false2005  savePoint:       []2006  restorePoint:    []2007fixedStack:2008stack:2009constants:2010body:             |2011  bb.0.entry:2012    liveins: $x3, $x42013 2014    %1 = COPY $x42015    %0 = COPY $x32016    %2 = COPY %1.sub_322017    %3 = LI -32018    %4 = CMPLWI %3, 872019    %6 = ISEL $zero, %3, %4.sub_gt2020    ; CHECK: ADDI killed %2, 02021    %7 = ADD4 killed %6, killed %22022    %9 = IMPLICIT_DEF2023    %8 = INSERT_SUBREG %9, killed %7, 12024    %10 = RLDICL killed %8, 0, 322025    $x3 = COPY %102026    BLR8 implicit $lr8, implicit $rm, implicit $x32027 2028...2029---2030name:            testLBZUX2031# CHECK-ALL: name: testLBZUX2032alignment:       162033exposesReturnsTwice: false2034legalized:       false2035regBankSelected: false2036selected:        false2037tracksRegLiveness: true2038registers:2039  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }2040  - { id: 1, class: g8rc, preferred-register: '' }2041  - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }2042  - { id: 3, class: gprc, preferred-register: '' }2043  - { id: 4, class: g8rc, preferred-register: '' }2044  - { id: 5, class: g8rc, preferred-register: '' }2045  - { id: 6, class: g8rc, preferred-register: '' }2046  - { id: 7, class: gprc, preferred-register: '' }2047  - { id: 8, class: gprc, preferred-register: '' }2048  - { id: 9, class: g8rc, preferred-register: '' }2049  - { id: 10, class: g8rc, preferred-register: '' }2050  - { id: 11, class: g8rc, preferred-register: '' }2051  - { id: 12, class: gprc, preferred-register: '' }2052  - { id: 13, class: gprc, preferred-register: '' }2053  - { id: 14, class: g8rc, preferred-register: '' }2054  - { id: 15, class: g8rc, preferred-register: '' }2055  - { id: 16, class: g8rc, preferred-register: '' }2056  - { id: 17, class: g8rc_and_g8rc_nox0, preferred-register: '' }2057liveins:2058  - { reg: '$x3', virtual-reg: '%0' }2059  - { reg: '$x4', virtual-reg: '%1' }2060frameInfo:2061  isFrameAddressTaken: false2062  isReturnAddressTaken: false2063  hasStackMap:     false2064  hasPatchPoint:   false2065  stackSize:       02066  offsetAdjustment: 02067  maxAlignment:    02068  adjustsStack:    false2069  hasCalls:        false2070  stackProtector:  ''2071  maxCallFrameSize: 42949672952072  hasOpaqueSPAdjustment: false2073  hasVAStart:      false2074  hasMustTailInVarArgFunc: false2075  savePoint:       []2076  restorePoint:    []2077fixedStack:2078stack:2079constants:2080body:             |2081  bb.0.entry:2082    liveins: $x3, $x42083 2084    %1 = COPY $x42085    %0 = COPY $x32086    %2 = COPY %1.sub_322087    %3 = ADDI %2, 12088    %5 = IMPLICIT_DEF2089    %4 = INSERT_SUBREG %5, killed %3, 12090    %6 = RLDICL killed %4, 0, 322091    %7 = LBZX %0, killed %6 :: (load (s8) from %ir.arrayidx, !tbaa !3)2092    %8 = ADDI %2, 22093    %10 = IMPLICIT_DEF2094    %9 = INSERT_SUBREG %10, killed %8, 12095    %11 = LI8 -152096    %12,%17 = LBZUX %0, killed %11 :: (load (s8) from %ir.arrayidx3, !tbaa !3)2097    ; CHECK: LBZU -15, killed %02098    ; CHECK-LATE: lbzu 5, -15(3)2099    %13 = ADD4 killed %12, killed %72100    %15 = IMPLICIT_DEF2101    %14 = INSERT_SUBREG %15, killed %13, 12102    %16 = RLWINM8 killed %14, 0, 24, 312103    $x3 = COPY %162104    BLR8 implicit $lr8, implicit $rm, implicit $x32105 2106...2107---2108name:            testLBZX2109# CHECK-ALL: name: testLBZX2110alignment:       162111exposesReturnsTwice: false2112legalized:       false2113regBankSelected: false2114selected:        false2115tracksRegLiveness: true2116registers:2117  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }2118  - { id: 1, class: g8rc, preferred-register: '' }2119  - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }2120  - { id: 3, class: gprc, preferred-register: '' }2121  - { id: 4, class: g8rc, preferred-register: '' }2122  - { id: 5, class: g8rc, preferred-register: '' }2123  - { id: 6, class: g8rc, preferred-register: '' }2124  - { id: 7, class: gprc, preferred-register: '' }2125  - { id: 8, class: gprc, preferred-register: '' }2126  - { id: 9, class: g8rc, preferred-register: '' }2127  - { id: 10, class: g8rc, preferred-register: '' }2128  - { id: 11, class: g8rc, preferred-register: '' }2129  - { id: 12, class: gprc, preferred-register: '' }2130  - { id: 13, class: gprc, preferred-register: '' }2131  - { id: 14, class: g8rc, preferred-register: '' }2132  - { id: 15, class: g8rc, preferred-register: '' }2133  - { id: 16, class: g8rc, preferred-register: '' }2134liveins:2135  - { reg: '$x3', virtual-reg: '%0' }2136  - { reg: '$x4', virtual-reg: '%1' }2137frameInfo:2138  isFrameAddressTaken: false2139  isReturnAddressTaken: false2140  hasStackMap:     false2141  hasPatchPoint:   false2142  stackSize:       02143  offsetAdjustment: 02144  maxAlignment:    02145  adjustsStack:    false2146  hasCalls:        false2147  stackProtector:  ''2148  maxCallFrameSize: 42949672952149  hasOpaqueSPAdjustment: false2150  hasVAStart:      false2151  hasMustTailInVarArgFunc: false2152  savePoint:       []2153  restorePoint:    []2154fixedStack:2155stack:2156constants:2157body:             |2158  bb.0.entry:2159    liveins: $x3, $x42160 2161    %1 = COPY $x42162    %0 = LI8 452163    %2 = COPY %1.sub_322164    %3 = ADDI %2, 12165    %5 = IMPLICIT_DEF2166    %4 = INSERT_SUBREG %5, killed %3, 12167    %6 = RLDICL killed %4, 0, 322168    %7 = LBZX %0, killed %6 :: (load (s8) from %ir.arrayidx, !tbaa !3)2169    ; CHECK: LBZ 45, killed %62170    ; CHECK-LATE: lbz 5, 45(5)2171    %8 = ADDI %2, 22172    %10 = IMPLICIT_DEF2173    %9 = INSERT_SUBREG %10, killed %8, 12174    %11 = RLDICL killed %9, 0, 322175    %12 = LBZX %0, killed %11 :: (load (s8) from %ir.arrayidx3, !tbaa !3)2176    ; CHECK: LBZ 45, killed %112177    ; CHECK-LATE: lbz 3, 45(4)2178    %13 = ADD4 killed %12, killed %72179    %15 = IMPLICIT_DEF2180    %14 = INSERT_SUBREG %15, killed %13, 12181    %16 = RLWINM8 killed %14, 0, 24, 312182    $x3 = COPY %162183    BLR8 implicit $lr8, implicit $rm, implicit $x32184 2185...2186---2187name:            testLHZUX2188# CHECK-ALL: name: testLHZUX2189alignment:       162190exposesReturnsTwice: false2191legalized:       false2192regBankSelected: false2193selected:        false2194tracksRegLiveness: true2195registers:2196  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }2197  - { id: 1, class: g8rc, preferred-register: '' }2198  - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }2199  - { id: 3, class: gprc, preferred-register: '' }2200  - { id: 4, class: g8rc, preferred-register: '' }2201  - { id: 5, class: g8rc, preferred-register: '' }2202  - { id: 6, class: g8rc, preferred-register: '' }2203  - { id: 7, class: gprc, preferred-register: '' }2204  - { id: 8, class: gprc, preferred-register: '' }2205  - { id: 9, class: g8rc, preferred-register: '' }2206  - { id: 10, class: g8rc, preferred-register: '' }2207  - { id: 11, class: g8rc, preferred-register: '' }2208  - { id: 12, class: gprc, preferred-register: '' }2209  - { id: 13, class: gprc, preferred-register: '' }2210  - { id: 14, class: g8rc, preferred-register: '' }2211  - { id: 15, class: g8rc, preferred-register: '' }2212  - { id: 16, class: g8rc, preferred-register: '' }2213  - { id: 17, class: g8rc_and_g8rc_nox0, preferred-register: '' }2214liveins:2215  - { reg: '$x3', virtual-reg: '%0' }2216  - { reg: '$x4', virtual-reg: '%1' }2217frameInfo:2218  isFrameAddressTaken: false2219  isReturnAddressTaken: false2220  hasStackMap:     false2221  hasPatchPoint:   false2222  stackSize:       02223  offsetAdjustment: 02224  maxAlignment:    02225  adjustsStack:    false2226  hasCalls:        false2227  stackProtector:  ''2228  maxCallFrameSize: 42949672952229  hasOpaqueSPAdjustment: false2230  hasVAStart:      false2231  hasMustTailInVarArgFunc: false2232  savePoint:       []2233  restorePoint:    []2234fixedStack:2235stack:2236constants:2237body:             |2238  bb.0.entry:2239    liveins: $x3, $x42240 2241    %1 = COPY $x42242    %0 = COPY $x32243    %2 = COPY %1.sub_322244    %3 = ADDI %2, 12245    %5 = IMPLICIT_DEF2246    %4 = INSERT_SUBREG %5, killed %3, 12247    %6 = RLDIC killed %4, 1, 312248    %7 = LHZX %0, killed %6 :: (load (s16) from %ir.arrayidx, !tbaa !6)2249    %8 = ADDI %2, 22250    %10 = IMPLICIT_DEF2251    %9 = INSERT_SUBREG %10, killed %8, 12252    %11 = LI8 314402253    %12,%17 = LHZUX %0, killed %11 :: (load (s16) from %ir.arrayidx3, !tbaa !6)2254    ; CHECK: LHZU 31440, killed %02255    ; CHECK-LATE: lhzu 5, 31440(3)2256    %13 = ADD4 killed %12, killed %72257    %15 = IMPLICIT_DEF2258    %14 = INSERT_SUBREG %15, killed %13, 12259    %16 = RLWINM8 killed %14, 0, 16, 312260    $x3 = COPY %162261    BLR8 implicit $lr8, implicit $rm, implicit $x32262 2263...2264---2265name:            testLHZX2266# CHECK-ALL: name: testLHZX2267alignment:       162268exposesReturnsTwice: false2269legalized:       false2270regBankSelected: false2271selected:        false2272tracksRegLiveness: true2273registers:2274  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }2275  - { id: 1, class: g8rc, preferred-register: '' }2276  - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }2277  - { id: 3, class: gprc, preferred-register: '' }2278  - { id: 4, class: g8rc, preferred-register: '' }2279  - { id: 5, class: g8rc, preferred-register: '' }2280  - { id: 6, class: g8rc, preferred-register: '' }2281  - { id: 7, class: gprc, preferred-register: '' }2282  - { id: 8, class: gprc, preferred-register: '' }2283  - { id: 9, class: g8rc, preferred-register: '' }2284  - { id: 10, class: g8rc, preferred-register: '' }2285  - { id: 11, class: g8rc, preferred-register: '' }2286  - { id: 12, class: gprc, preferred-register: '' }2287  - { id: 13, class: gprc, preferred-register: '' }2288  - { id: 14, class: g8rc, preferred-register: '' }2289  - { id: 15, class: g8rc, preferred-register: '' }2290  - { id: 16, class: g8rc, preferred-register: '' }2291liveins:2292  - { reg: '$x3', virtual-reg: '%0' }2293  - { reg: '$x4', virtual-reg: '%1' }2294frameInfo:2295  isFrameAddressTaken: false2296  isReturnAddressTaken: false2297  hasStackMap:     false2298  hasPatchPoint:   false2299  stackSize:       02300  offsetAdjustment: 02301  maxAlignment:    02302  adjustsStack:    false2303  hasCalls:        false2304  stackProtector:  ''2305  maxCallFrameSize: 42949672952306  hasOpaqueSPAdjustment: false2307  hasVAStart:      false2308  hasMustTailInVarArgFunc: false2309  savePoint:       []2310  restorePoint:    []2311fixedStack:2312stack:2313constants:2314body:             |2315  bb.0.entry:2316    liveins: $x3, $x42317 2318    %1 = COPY $x42319    %0 = COPY $x32320    %2 = COPY %1.sub_322321    %3 = ADDI %2, 12322    %5 = IMPLICIT_DEF2323    %4 = INSERT_SUBREG %5, killed %3, 12324    %6 = RLDIC killed %4, 1, 312325    %7 = LHZX %0, killed %6 :: (load (s16) from %ir.arrayidx, !tbaa !6)2326    %8 = ADDI %2, 22327    %10 = IMPLICIT_DEF2328    %9 = INSERT_SUBREG %10, killed %8, 12329    %11 = LI8 8822330    %12 = LHZX %0, killed %11 :: (load (s16) from %ir.arrayidx3, !tbaa !6)2331    ; CHECK: LHZ 882, killed %02332    ; CHECK-LATE: lhz 3, 882(3)2333    %13 = ADD4 killed %12, killed %72334    %15 = IMPLICIT_DEF2335    %14 = INSERT_SUBREG %15, killed %13, 12336    %16 = RLWINM8 killed %14, 0, 16, 312337    $x3 = COPY %162338    BLR8 implicit $lr8, implicit $rm, implicit $x32339 2340...2341---2342name:            testLHAUX2343# CHECK-ALL: name: testLHAUX2344alignment:       162345exposesReturnsTwice: false2346legalized:       false2347regBankSelected: false2348selected:        false2349tracksRegLiveness: true2350registers:2351  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }2352  - { id: 1, class: g8rc, preferred-register: '' }2353  - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }2354  - { id: 3, class: gprc, preferred-register: '' }2355  - { id: 4, class: g8rc, preferred-register: '' }2356  - { id: 5, class: g8rc, preferred-register: '' }2357  - { id: 6, class: g8rc, preferred-register: '' }2358  - { id: 7, class: gprc, preferred-register: '' }2359  - { id: 8, class: gprc, preferred-register: '' }2360  - { id: 9, class: g8rc, preferred-register: '' }2361  - { id: 10, class: g8rc, preferred-register: '' }2362  - { id: 11, class: g8rc, preferred-register: '' }2363  - { id: 12, class: gprc, preferred-register: '' }2364  - { id: 13, class: gprc, preferred-register: '' }2365  - { id: 14, class: g8rc, preferred-register: '' }2366  - { id: 15, class: g8rc, preferred-register: '' }2367  - { id: 16, class: g8rc, preferred-register: '' }2368  - { id: 17, class: g8rc_and_g8rc_nox0, preferred-register: '' }2369liveins:2370  - { reg: '$x3', virtual-reg: '%0' }2371  - { reg: '$x4', virtual-reg: '%1' }2372frameInfo:2373  isFrameAddressTaken: false2374  isReturnAddressTaken: false2375  hasStackMap:     false2376  hasPatchPoint:   false2377  stackSize:       02378  offsetAdjustment: 02379  maxAlignment:    02380  adjustsStack:    false2381  hasCalls:        false2382  stackProtector:  ''2383  maxCallFrameSize: 42949672952384  hasOpaqueSPAdjustment: false2385  hasVAStart:      false2386  hasMustTailInVarArgFunc: false2387  savePoint:       []2388  restorePoint:    []2389fixedStack:2390stack:2391constants:2392body:             |2393  bb.0.entry:2394    liveins: $x3, $x42395 2396    %1 = COPY $x42397    %0 = COPY $x32398    %2 = COPY %1.sub_322399    %3 = ADDI %2, 12400    %5 = IMPLICIT_DEF2401    %4 = INSERT_SUBREG %5, killed %3, 12402    %6 = RLDIC %4, 1, 312403    %7 = LHZX %0, killed %6 :: (load (s16) from %ir.arrayidx, !tbaa !6)2404    %8 = ADDI %2, 22405    %10 = IMPLICIT_DEF2406    %9 = INSERT_SUBREG %10, killed %8, 12407    %11 = LI8 4002408    %12,%17 = LHAUX %0, killed %11 :: (load (s16) from %ir.arrayidx3, !tbaa !6)2409    ; CHECK: LHAU 400, killed %02410    ; CHECK-LATE: lhau 5, 400(3)2411    %13 = ADD4 killed %12, killed %72412    %15 = IMPLICIT_DEF2413    %14 = INSERT_SUBREG %15, killed %13, 12414    %16 = EXTSH8 killed %142415    $x3 = COPY %162416    BLR8 implicit $lr8, implicit $rm, implicit $x32417 2418...2419---2420name:            testLHAX2421# CHECK-ALL: name: testLHAX2422alignment:       162423exposesReturnsTwice: false2424legalized:       false2425regBankSelected: false2426selected:        false2427tracksRegLiveness: true2428registers:2429  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }2430  - { id: 1, class: g8rc, preferred-register: '' }2431  - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }2432  - { id: 3, class: gprc, preferred-register: '' }2433  - { id: 4, class: g8rc, preferred-register: '' }2434  - { id: 5, class: g8rc, preferred-register: '' }2435  - { id: 6, class: g8rc, preferred-register: '' }2436  - { id: 7, class: gprc, preferred-register: '' }2437  - { id: 8, class: gprc, preferred-register: '' }2438  - { id: 9, class: g8rc, preferred-register: '' }2439  - { id: 10, class: g8rc, preferred-register: '' }2440  - { id: 11, class: g8rc, preferred-register: '' }2441  - { id: 12, class: gprc, preferred-register: '' }2442  - { id: 13, class: gprc, preferred-register: '' }2443  - { id: 14, class: g8rc, preferred-register: '' }2444  - { id: 15, class: g8rc, preferred-register: '' }2445  - { id: 16, class: g8rc, preferred-register: '' }2446liveins:2447  - { reg: '$x3', virtual-reg: '%0' }2448  - { reg: '$x4', virtual-reg: '%1' }2449frameInfo:2450  isFrameAddressTaken: false2451  isReturnAddressTaken: false2452  hasStackMap:     false2453  hasPatchPoint:   false2454  stackSize:       02455  offsetAdjustment: 02456  maxAlignment:    02457  adjustsStack:    false2458  hasCalls:        false2459  stackProtector:  ''2460  maxCallFrameSize: 42949672952461  hasOpaqueSPAdjustment: false2462  hasVAStart:      false2463  hasMustTailInVarArgFunc: false2464  savePoint:       []2465  restorePoint:    []2466fixedStack:2467stack:2468constants:2469body:             |2470  bb.0.entry:2471    liveins: $x3, $x42472 2473    %1 = COPY $x42474    %0 = COPY $x32475    %2 = COPY %1.sub_322476    %3 = ADDI %2, 12477    %5 = IMPLICIT_DEF2478    %4 = INSERT_SUBREG %5, killed %3, 12479    %6 = LI8 -9992480    %7 = LHAX %0, killed %6 :: (load (s16) from %ir.arrayidx, !tbaa !6)2481    ; CHECK: LHA -999, %02482    ; CHECK-LATE: lha 4, -999(3)2483    %8 = ADDI %2, 22484    %10 = IMPLICIT_DEF2485    %9 = INSERT_SUBREG %10, killed %8, 12486    %11 = LI8 9992487    %12 = LHAX %0, killed %11 :: (load (s16) from %ir.arrayidx3, !tbaa !6)2488    ; CHECK: LHA 999, killed %02489    ; CHECK-LATE: lha 3, 999(3)2490    %13 = ADD4 killed %12, killed %72491    %15 = IMPLICIT_DEF2492    %14 = INSERT_SUBREG %15, killed %13, 12493    %16 = EXTSH8 killed %142494    $x3 = COPY %162495    BLR8 implicit $lr8, implicit $rm, implicit $x32496 2497...2498---2499name:            testLWZUX2500# CHECK-ALL: name: testLWZUX2501alignment:       162502exposesReturnsTwice: false2503legalized:       false2504regBankSelected: false2505selected:        false2506tracksRegLiveness: true2507registers:2508  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }2509  - { id: 1, class: g8rc, preferred-register: '' }2510  - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }2511  - { id: 3, class: gprc, preferred-register: '' }2512  - { id: 4, class: g8rc, preferred-register: '' }2513  - { id: 5, class: g8rc, preferred-register: '' }2514  - { id: 6, class: g8rc, preferred-register: '' }2515  - { id: 7, class: gprc, preferred-register: '' }2516  - { id: 8, class: gprc, preferred-register: '' }2517  - { id: 9, class: g8rc, preferred-register: '' }2518  - { id: 10, class: g8rc, preferred-register: '' }2519  - { id: 11, class: g8rc, preferred-register: '' }2520  - { id: 12, class: gprc, preferred-register: '' }2521  - { id: 13, class: gprc, preferred-register: '' }2522  - { id: 14, class: g8rc, preferred-register: '' }2523  - { id: 15, class: g8rc, preferred-register: '' }2524  - { id: 16, class: g8rc, preferred-register: '' }2525  - { id: 17, class: g8rc_and_g8rc_nox0, preferred-register: '' }2526  - { id: 18, class: g8rc_and_g8rc_nox0, preferred-register: '' }2527liveins:2528  - { reg: '$x3', virtual-reg: '%0' }2529  - { reg: '$x4', virtual-reg: '%1' }2530frameInfo:2531  isFrameAddressTaken: false2532  isReturnAddressTaken: false2533  hasStackMap:     false2534  hasPatchPoint:   false2535  stackSize:       02536  offsetAdjustment: 02537  maxAlignment:    02538  adjustsStack:    false2539  hasCalls:        false2540  stackProtector:  ''2541  maxCallFrameSize: 42949672952542  hasOpaqueSPAdjustment: false2543  hasVAStart:      false2544  hasMustTailInVarArgFunc: false2545  savePoint:       []2546  restorePoint:    []2547fixedStack:2548stack:2549constants:2550body:             |2551  bb.0.entry:2552    liveins: $x3, $x42553 2554    %1 = COPY $x42555    %0 = COPY $x32556    %2 = COPY %1.sub_322557    %3 = ADDI %2, 12558    %5 = IMPLICIT_DEF2559    %4 = INSERT_SUBREG %5, killed %3, 12560    %6 = LI8 8892561    %7,%17 = LWZUX %0, killed %6 :: (load (s32) from %ir.arrayidx, !tbaa !8)2562    ; CHECK: LWZU 889, %02563    ; CHECK-LATE: lwzu {{[0-9]+}}, 889({{[0-9]+}})2564    %8 = ADDI %2, 22565    %10 = IMPLICIT_DEF2566    %9 = INSERT_SUBREG %10, killed %8, 12567    %11 = LI8 -22568    %12,%18 = LWZUX %0, killed %11 :: (load (s32) from %ir.arrayidx3, !tbaa !8)2569    ; CHECK: LWZU -2, killed %02570    ; CHECK-LATE: lwzu {{[0-9]+}}, -2({{[0-9]+}})2571    %13 = ADD4 killed %12, killed %72572    %15 = IMPLICIT_DEF2573    %14 = INSERT_SUBREG %15, killed %13, 12574    %16 = RLDICL killed %14, 0, 322575    $x3 = COPY %162576    BLR8 implicit $lr8, implicit $rm, implicit $x32577 2578...2579---2580name:            testLWZX2581# CHECK-ALL: name: testLWZX2582alignment:       162583exposesReturnsTwice: false2584legalized:       false2585regBankSelected: false2586selected:        false2587tracksRegLiveness: true2588registers:2589  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }2590  - { id: 1, class: g8rc, preferred-register: '' }2591  - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }2592  - { id: 3, class: gprc, preferred-register: '' }2593  - { id: 4, class: g8rc, preferred-register: '' }2594  - { id: 5, class: g8rc, preferred-register: '' }2595  - { id: 6, class: g8rc, preferred-register: '' }2596  - { id: 7, class: gprc, preferred-register: '' }2597  - { id: 8, class: gprc, preferred-register: '' }2598  - { id: 9, class: g8rc, preferred-register: '' }2599  - { id: 10, class: g8rc, preferred-register: '' }2600  - { id: 11, class: g8rc, preferred-register: '' }2601  - { id: 12, class: gprc, preferred-register: '' }2602  - { id: 13, class: gprc, preferred-register: '' }2603  - { id: 14, class: g8rc, preferred-register: '' }2604  - { id: 15, class: g8rc, preferred-register: '' }2605  - { id: 16, class: g8rc, preferred-register: '' }2606liveins:2607  - { reg: '$x3', virtual-reg: '%0' }2608  - { reg: '$x4', virtual-reg: '%1' }2609frameInfo:2610  isFrameAddressTaken: false2611  isReturnAddressTaken: false2612  hasStackMap:     false2613  hasPatchPoint:   false2614  stackSize:       02615  offsetAdjustment: 02616  maxAlignment:    02617  adjustsStack:    false2618  hasCalls:        false2619  stackProtector:  ''2620  maxCallFrameSize: 42949672952621  hasOpaqueSPAdjustment: false2622  hasVAStart:      false2623  hasMustTailInVarArgFunc: false2624  savePoint:       []2625  restorePoint:    []2626fixedStack:2627stack:2628constants:2629body:             |2630  bb.0.entry:2631    liveins: $x3, $x42632 2633    %1 = COPY $x42634    %0 = LI8 10002635    %2 = COPY %1.sub_322636    %3 = ADDI %2, 12637    %5 = IMPLICIT_DEF2638    %4 = INSERT_SUBREG %5, killed %3, 12639    %6 = RLDIC %4, 2, 302640    %7 = LWZX %0, killed %6 :: (load (s32) from %ir.arrayidx, !tbaa !8)2641    ; CHECK: LWZ 1000, killed %62642    ; CHECK-LATE: lwz 5, 1000(5)2643    %8 = ADDI %2, 22644    %10 = IMPLICIT_DEF2645    %9 = INSERT_SUBREG %10, killed %8, 12646    %11 = RLDIC %9, 2, 302647    %12 = LWZX %0, killed %11 :: (load (s32) from %ir.arrayidx3, !tbaa !8)2648    ; CHECK: LWZ 1000, killed %112649    ; CHECK-LATE: lwz 3, 1000(4)2650    %13 = ADD4 killed %12, killed %72651    %15 = IMPLICIT_DEF2652    %14 = INSERT_SUBREG %15, killed %13, 12653    %16 = RLDICL killed %14, 0, 322654    $x3 = COPY %162655    BLR8 implicit $lr8, implicit $rm, implicit $x32656 2657...2658---2659name:            testLWAX2660# CHECK-ALL: name: testLWAX2661alignment:       162662exposesReturnsTwice: false2663legalized:       false2664regBankSelected: false2665selected:        false2666tracksRegLiveness: true2667registers:2668  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }2669  - { id: 1, class: g8rc, preferred-register: '' }2670  - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }2671  - { id: 3, class: gprc, preferred-register: '' }2672  - { id: 4, class: g8rc, preferred-register: '' }2673  - { id: 5, class: g8rc, preferred-register: '' }2674  - { id: 6, class: g8rc, preferred-register: '' }2675  - { id: 7, class: g8rc, preferred-register: '' }2676  - { id: 8, class: gprc, preferred-register: '' }2677  - { id: 9, class: g8rc, preferred-register: '' }2678  - { id: 10, class: g8rc, preferred-register: '' }2679  - { id: 11, class: g8rc, preferred-register: '' }2680  - { id: 12, class: g8rc, preferred-register: '' }2681  - { id: 13, class: g8rc, preferred-register: '' }2682liveins:2683  - { reg: '$x3', virtual-reg: '%0' }2684  - { reg: '$x4', virtual-reg: '%1' }2685frameInfo:2686  isFrameAddressTaken: false2687  isReturnAddressTaken: false2688  hasStackMap:     false2689  hasPatchPoint:   false2690  stackSize:       02691  offsetAdjustment: 02692  maxAlignment:    02693  adjustsStack:    false2694  hasCalls:        false2695  stackProtector:  ''2696  maxCallFrameSize: 42949672952697  hasOpaqueSPAdjustment: false2698  hasVAStart:      false2699  hasMustTailInVarArgFunc: false2700  savePoint:       []2701  restorePoint:    []2702fixedStack:2703stack:2704constants:2705body:             |2706  bb.0.entry:2707    liveins: $x3, $x42708 2709    %1 = COPY $x42710    %0 = LI8 4442711    %2 = COPY %1.sub_322712    %3 = ADDI %2, 12713    %5 = IMPLICIT_DEF2714    %4 = INSERT_SUBREG %5, killed %3, 12715    %6 = RLDIC %4, 2, 302716    %7 = LWAX %0, killed %6 :: (load (s32) from %ir.arrayidx, !tbaa !8)2717    ; CHECK: LWA 444, killed %62718    ; CHECK-LATE: lwa 5, 444(5)2719    %8 = ADDI %2, 22720    %10 = IMPLICIT_DEF2721    %9 = INSERT_SUBREG %10, killed %8, 12722    %11 = RLDIC %9, 2, 302723    %12 = LWAX %0, killed %11 :: (load (s32) from %ir.arrayidx3, !tbaa !8)2724    ; CHECK: LWA 444, killed %112725    ; CHECK-LATE: lwa 3, 444(4)2726    %13 = ADD8 killed %12, killed %72727    $x3 = COPY %132728    BLR8 implicit $lr8, implicit $rm, implicit $x32729 2730...2731---2732name:            testLDUX2733# CHECK-ALL: name: testLDUX2734alignment:       162735exposesReturnsTwice: false2736legalized:       false2737regBankSelected: false2738selected:        false2739tracksRegLiveness: true2740registers:2741  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }2742  - { id: 1, class: g8rc, preferred-register: '' }2743  - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }2744  - { id: 3, class: gprc, preferred-register: '' }2745  - { id: 4, class: g8rc, preferred-register: '' }2746  - { id: 5, class: g8rc, preferred-register: '' }2747  - { id: 6, class: g8rc, preferred-register: '' }2748  - { id: 7, class: g8rc, preferred-register: '' }2749  - { id: 8, class: gprc, preferred-register: '' }2750  - { id: 9, class: g8rc, preferred-register: '' }2751  - { id: 10, class: g8rc, preferred-register: '' }2752  - { id: 11, class: g8rc, preferred-register: '' }2753  - { id: 12, class: g8rc, preferred-register: '' }2754  - { id: 13, class: g8rc, preferred-register: '' }2755  - { id: 14, class: g8rc_and_g8rc_nox0, preferred-register: '' }2756  - { id: 15, class: g8rc_and_g8rc_nox0, preferred-register: '' }2757liveins:2758  - { reg: '$x3', virtual-reg: '%0' }2759  - { reg: '$x4', virtual-reg: '%1' }2760frameInfo:2761  isFrameAddressTaken: false2762  isReturnAddressTaken: false2763  hasStackMap:     false2764  hasPatchPoint:   false2765  stackSize:       02766  offsetAdjustment: 02767  maxAlignment:    02768  adjustsStack:    false2769  hasCalls:        false2770  stackProtector:  ''2771  maxCallFrameSize: 42949672952772  hasOpaqueSPAdjustment: false2773  hasVAStart:      false2774  hasMustTailInVarArgFunc: false2775  savePoint:       []2776  restorePoint:    []2777fixedStack:2778stack:2779constants:2780body:             |2781  bb.0.entry:2782    liveins: $x3, $x42783 2784    %1 = COPY $x42785    %0 = COPY $x32786    %2 = COPY %1.sub_322787    %3 = ADDI %2, 12788    %5 = IMPLICIT_DEF2789    %4 = INSERT_SUBREG %5, killed %3, 12790    %6 = LI8 1002791    %7,%14 = LDUX %0, killed %6 :: (load (s64) from %ir.arrayidx, !tbaa !10)2792    ; CHECK: LDU 100, %02793    ; CHECK-LATE: ldu {{[0-9]+}}, 100({{[0-9]+}})2794    %8 = ADDI %2, 22795    %10 = IMPLICIT_DEF2796    %9 = INSERT_SUBREG %10, killed %8, 12797    %11 = LI8 2002798    %12,%15 = LDUX %0, killed %11 :: (load (s64) from %ir.arrayidx3, !tbaa !10)2799    ; CHECK: LDU 200, killed %02800    ; CHECK-LATE: ldu {{[0-9]+}}, 200({{[0-9]+}})2801    %13 = ADD8 killed %12, killed %72802    $x3 = COPY %132803    BLR8 implicit $lr8, implicit $rm, implicit $x32804 2805...2806---2807name:            testLDX2808# CHECK-ALL: name: testLDX2809alignment:       162810exposesReturnsTwice: false2811legalized:       false2812regBankSelected: false2813selected:        false2814tracksRegLiveness: true2815registers:2816  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }2817  - { id: 1, class: g8rc, preferred-register: '' }2818  - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }2819  - { id: 3, class: gprc, preferred-register: '' }2820  - { id: 4, class: g8rc, preferred-register: '' }2821  - { id: 5, class: g8rc, preferred-register: '' }2822  - { id: 6, class: g8rc, preferred-register: '' }2823  - { id: 7, class: g8rc, preferred-register: '' }2824  - { id: 8, class: gprc, preferred-register: '' }2825  - { id: 9, class: g8rc, preferred-register: '' }2826  - { id: 10, class: g8rc, preferred-register: '' }2827  - { id: 11, class: g8rc, preferred-register: '' }2828  - { id: 12, class: g8rc, preferred-register: '' }2829  - { id: 13, class: g8rc, preferred-register: '' }2830liveins:2831  - { reg: '$x3', virtual-reg: '%0' }2832  - { reg: '$x4', virtual-reg: '%1' }2833frameInfo:2834  isFrameAddressTaken: false2835  isReturnAddressTaken: false2836  hasStackMap:     false2837  hasPatchPoint:   false2838  stackSize:       02839  offsetAdjustment: 02840  maxAlignment:    02841  adjustsStack:    false2842  hasCalls:        false2843  stackProtector:  ''2844  maxCallFrameSize: 42949672952845  hasOpaqueSPAdjustment: false2846  hasVAStart:      false2847  hasMustTailInVarArgFunc: false2848  savePoint:       []2849  restorePoint:    []2850fixedStack:2851stack:2852constants:2853body:             |2854  bb.0.entry:2855    liveins: $x3, $x42856 2857    %1 = COPY $x42858    %0 = COPY $x32859    %2 = COPY %1.sub_322860    %3 = ADDI %2, 12861    %5 = IMPLICIT_DEF2862    %4 = INSERT_SUBREG %5, killed %3, 12863    %6 = LI8 1202864    %7 = LDX %0, killed %6 :: (load (s64) from %ir.arrayidx, !tbaa !10)2865    ; CHECK: LD 120, %02866    ; CHECK-LATE: ld 4, 120(3)2867    %8 = ADDI %2, 22868    %10 = IMPLICIT_DEF2869    %9 = INSERT_SUBREG %10, killed %8, 12870    %11 = LI8 2802871    %12 = LDX %0, killed %11 :: (load (s64) from %ir.arrayidx3, !tbaa !10)2872    ; CHECK: LD 280, killed %02873    ; CHECK-LATE: ld 3, 280(3)2874    %13 = ADD8 killed %12, killed %72875    $x3 = COPY %132876    BLR8 implicit $lr8, implicit $rm, implicit $x32877 2878...2879---2880name:            testLFDUX2881# CHECK-ALL: name: testLFDUX2882alignment:       162883exposesReturnsTwice: false2884legalized:       false2885regBankSelected: false2886selected:        false2887tracksRegLiveness: true2888registers:2889  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }2890  - { id: 1, class: g8rc, preferred-register: '' }2891  - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }2892  - { id: 3, class: gprc, preferred-register: '' }2893  - { id: 4, class: g8rc, preferred-register: '' }2894  - { id: 5, class: g8rc, preferred-register: '' }2895  - { id: 6, class: g8rc, preferred-register: '' }2896  - { id: 7, class: f8rc, preferred-register: '' }2897  - { id: 8, class: gprc, preferred-register: '' }2898  - { id: 9, class: g8rc, preferred-register: '' }2899  - { id: 10, class: g8rc, preferred-register: '' }2900  - { id: 11, class: g8rc, preferred-register: '' }2901  - { id: 12, class: f8rc, preferred-register: '' }2902  - { id: 13, class: f8rc, preferred-register: '' }2903  - { id: 14, class: g8rc_and_g8rc_nox0, preferred-register: '' }2904  - { id: 15, class: g8rc_and_g8rc_nox0, preferred-register: '' }2905liveins:2906  - { reg: '$x3', virtual-reg: '%0' }2907  - { reg: '$x4', virtual-reg: '%1' }2908frameInfo:2909  isFrameAddressTaken: false2910  isReturnAddressTaken: false2911  hasStackMap:     false2912  hasPatchPoint:   false2913  stackSize:       02914  offsetAdjustment: 02915  maxAlignment:    02916  adjustsStack:    false2917  hasCalls:        false2918  stackProtector:  ''2919  maxCallFrameSize: 42949672952920  hasOpaqueSPAdjustment: false2921  hasVAStart:      false2922  hasMustTailInVarArgFunc: false2923  savePoint:       []2924  restorePoint:    []2925fixedStack:2926stack:2927constants:2928body:             |2929  bb.0.entry:2930    liveins: $x3, $x42931 2932    %1 = COPY $x42933    %0 = COPY $x32934    %2 = COPY %1.sub_322935    %3 = ADDI %2, 12936    %5 = IMPLICIT_DEF2937    %4 = INSERT_SUBREG %5, killed %3, 12938    %6 = LI8 4402939    %7,%14 = LFDUX %0, killed %6 :: (load (s64) from %ir.arrayidx, !tbaa !12)2940    ; CHECK: LFDU 440, %02941    ; CHECK-LATE: lfdu {{[0-9]+}}, 440({{[0-9]+}})2942    %8 = ADDI %2, 22943    %10 = IMPLICIT_DEF2944    %9 = INSERT_SUBREG %10, killed %8, 12945    %11 = LI8 162946    %12,%15 = LFDUX %0, killed %11 :: (load (s64) from %ir.arrayidx3, !tbaa !12)2947    ; CHECK: LFDU 16, killed %02948    ; CHECK-LATE: lfdu {{[0-9]+}}, 16({{[0-9]+}})2949    %13 = FADD killed %7, killed %12, implicit $rm2950    $f1 = COPY %132951    BLR8 implicit $lr8, implicit $rm, implicit $f12952 2953...2954---2955name:            testLFDX2956# CHECK-ALL: name: testLFDX2957alignment:       162958exposesReturnsTwice: false2959legalized:       false2960regBankSelected: false2961selected:        false2962tracksRegLiveness: true2963registers:2964  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }2965  - { id: 1, class: g8rc, preferred-register: '' }2966  - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }2967  - { id: 3, class: gprc, preferred-register: '' }2968  - { id: 4, class: g8rc, preferred-register: '' }2969  - { id: 5, class: g8rc, preferred-register: '' }2970  - { id: 6, class: g8rc, preferred-register: '' }2971  - { id: 7, class: f8rc, preferred-register: '' }2972  - { id: 8, class: gprc, preferred-register: '' }2973  - { id: 9, class: g8rc, preferred-register: '' }2974  - { id: 10, class: g8rc, preferred-register: '' }2975  - { id: 11, class: g8rc, preferred-register: '' }2976  - { id: 12, class: f8rc, preferred-register: '' }2977  - { id: 13, class: f8rc, preferred-register: '' }2978liveins:2979  - { reg: '$x3', virtual-reg: '%0' }2980  - { reg: '$x4', virtual-reg: '%1' }2981frameInfo:2982  isFrameAddressTaken: false2983  isReturnAddressTaken: false2984  hasStackMap:     false2985  hasPatchPoint:   false2986  stackSize:       02987  offsetAdjustment: 02988  maxAlignment:    02989  adjustsStack:    false2990  hasCalls:        false2991  stackProtector:  ''2992  maxCallFrameSize: 42949672952993  hasOpaqueSPAdjustment: false2994  hasVAStart:      false2995  hasMustTailInVarArgFunc: false2996  savePoint:       []2997  restorePoint:    []2998fixedStack:2999stack:3000constants:3001body:             |3002  bb.0.entry:3003    liveins: $x3, $x43004 3005    %1 = COPY $x43006    %0 = LI8 -203007    %2 = COPY %1.sub_323008    %3 = ADDI %2, 13009    %5 = IMPLICIT_DEF3010    %4 = INSERT_SUBREG %5, killed %3, 13011    %6 = RLDIC %4, 3, 293012    %7 = LFDX %0, killed %6 :: (load (s64) from %ir.arrayidx, !tbaa !12)3013    ; CHECK: LFD -20, killed %63014    ; CHECK-LATE: lfd {{[0-9]+}}, -20({{[0-9]+}})3015    %8 = ADDI %2, 23016    %10 = IMPLICIT_DEF3017    %9 = INSERT_SUBREG %10, killed %8, 13018    %11 = RLDIC %9, 3, 293019    %12 = LFDX %0, killed %11 :: (load (s64) from %ir.arrayidx3, !tbaa !12)3020    ; CHECK: LFD -20, killed %113021    ; CHECK-LATE: lfd {{[0-9]+}}, -20({{[0-9]+}})3022    %13 = FADD killed %7, killed %12, implicit $rm3023    $f1 = COPY %133024    BLR8 implicit $lr8, implicit $rm, implicit $f13025 3026...3027---3028name:            testLFSUX3029# CHECK-ALL: name: testLFSUX3030alignment:       163031exposesReturnsTwice: false3032legalized:       false3033regBankSelected: false3034selected:        false3035tracksRegLiveness: true3036registers:3037  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }3038  - { id: 1, class: g8rc, preferred-register: '' }3039  - { id: 2, class: g8rc, preferred-register: '' }3040  - { id: 3, class: f8rc, preferred-register: '' }3041  - { id: 4, class: g8rc_and_g8rc_nox0, preferred-register: '' }3042  - { id: 5, class: f8rc, preferred-register: '' }3043  - { id: 6, class: g8rc, preferred-register: '' }3044  - { id: 7, class: gprc, preferred-register: '' }3045  - { id: 8, class: f8rc, preferred-register: '' }3046  - { id: 9, class: f8rc, preferred-register: '' }3047  - { id: 10, class: f8rc, preferred-register: '' }3048  - { id: 11, class: g8rc, preferred-register: '' }3049  - { id: 12, class: gprc, preferred-register: '' }3050  - { id: 13, class: f8rc, preferred-register: '' }3051  - { id: 14, class: f8rc, preferred-register: '' }3052  - { id: 15, class: f8rc, preferred-register: '' }3053  - { id: 16, class: g8rc, preferred-register: '' }3054  - { id: 17, class: gprc, preferred-register: '' }3055  - { id: 18, class: f8rc, preferred-register: '' }3056  - { id: 19, class: f8rc, preferred-register: '' }3057  - { id: 20, class: f8rc, preferred-register: '' }3058  - { id: 21, class: g8rc, preferred-register: '' }3059  - { id: 22, class: gprc, preferred-register: '' }3060  - { id: 23, class: g8rc, preferred-register: '' }3061  - { id: 24, class: vrrc, preferred-register: '' }3062liveins:3063  - { reg: '$x3', virtual-reg: '%0' }3064  - { reg: '$x4', virtual-reg: '%1' }3065frameInfo:3066  isFrameAddressTaken: false3067  isReturnAddressTaken: false3068  hasStackMap:     false3069  hasPatchPoint:   false3070  stackSize:       03071  offsetAdjustment: 03072  maxAlignment:    163073  adjustsStack:    false3074  hasCalls:        false3075  stackProtector:  ''3076  maxCallFrameSize: 42949672953077  hasOpaqueSPAdjustment: false3078  hasVAStart:      false3079  hasMustTailInVarArgFunc: false3080  savePoint:       []3081  restorePoint:    []3082fixedStack:3083stack:3084  - { id: 0, name: '', type: default, offset: 0, size: 16, alignment: 16,3085      stack-id: default, callee-saved-register: '', callee-saved-restored: true,3086      local-offset: -16, debug-info-variable: '', debug-info-expression: '',3087      debug-info-location: '' }3088  - { id: 1, name: '', type: default, offset: 0, size: 4, alignment: 4,3089      stack-id: default, callee-saved-register: '', callee-saved-restored: true,3090      local-offset: -20, debug-info-variable: '', debug-info-expression: '',3091      debug-info-location: '' }3092  - { id: 2, name: '', type: default, offset: 0, size: 4, alignment: 4,3093      stack-id: default, callee-saved-register: '', callee-saved-restored: true,3094      local-offset: -24, debug-info-variable: '', debug-info-expression: '',3095      debug-info-location: '' }3096  - { id: 3, name: '', type: default, offset: 0, size: 4, alignment: 4,3097      stack-id: default, callee-saved-register: '', callee-saved-restored: true,3098      local-offset: -28, debug-info-variable: '', debug-info-expression: '',3099      debug-info-location: '' }3100  - { id: 4, name: '', type: default, offset: 0, size: 4, alignment: 4,3101      stack-id: default, callee-saved-register: '', callee-saved-restored: true,3102      local-offset: -32, debug-info-variable: '', debug-info-expression: '',3103      debug-info-location: '' }3104constants:3105body:             |3106  bb.0.entry:3107    liveins: $x3, $x43108 3109    %1 = COPY $x43110    %0 = COPY $x33111    %2 = LI8 723112    %3, %4 = LFSUX %0, killed %2 :: (load (s32) from %ir.arrayidx, !tbaa !14)3113    ; CHECK: LFSU 72, killed %03114    ; CHECK-LATE: lfsu 0, 72(3)3115    %5 = FCTIWUZ killed %3, implicit $rm3116    %6 = ADDI8 %stack.4, 03117    STFIWX killed %5, $zero8, killed %63118    %7 = LWZ 0, %stack.4 :: (load (s32) from %stack.4)3119    %8 = LFS 4, %4 :: (load (s32) from %ir.3, !tbaa !14)3120    %10 = FCTIWUZ %8, implicit $rm3121    %11 = ADDI8 %stack.1, 03122    STFIWX killed %10, $zero8, killed %113123    %12 = LWZ 0, %stack.1 :: (load (s32) from %stack.1)3124    %13 = LFS 8, %4 :: (load (s32) from %ir.5, !tbaa !14)3125    %15 = FCTIWUZ %13, implicit $rm3126    %16 = ADDI8 %stack.2, 03127    STFIWX killed %15, $zero8, killed %163128    %17 = LWZ 0, %stack.2 :: (load (s32) from %stack.2)3129    %18 = LFS 12, %4 :: (load (s32) from %ir.7, !tbaa !14)3130    %20 = FCTIWUZ %18, implicit $rm3131    %21 = ADDI8 %stack.3, 03132    STFIWX killed %20, $zero8, killed %213133    %22 = LWZ 0, %stack.3 :: (load (s32) from %stack.3)3134    STW killed %7, 0, %stack.0 :: (store (s32) into %stack.0, align 16)3135    STW killed %22, 12, %stack.0 :: (store (s32) into %stack.0 + 12)3136    STW killed %17, 8, %stack.0 :: (store (s32) into %stack.0 + 8, align 8)3137    STW killed %12, 4, %stack.0 :: (store (s32) into %stack.0 + 4)3138    %23 = ADDI8 %stack.0, 03139    %24 = LVX $zero8, killed %23 :: (load (s128) from %stack.0)3140    $v2 = COPY %243141    BLR8 implicit $lr8, implicit $rm, implicit $v23142 3143...3144---3145name:            testLFSX3146# CHECK-ALL: name: testLFSX3147alignment:       163148exposesReturnsTwice: false3149legalized:       false3150regBankSelected: false3151selected:        false3152tracksRegLiveness: true3153registers:3154  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }3155  - { id: 1, class: g8rc, preferred-register: '' }3156  - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }3157  - { id: 3, class: gprc, preferred-register: '' }3158  - { id: 4, class: g8rc, preferred-register: '' }3159  - { id: 5, class: g8rc, preferred-register: '' }3160  - { id: 6, class: g8rc, preferred-register: '' }3161  - { id: 7, class: f4rc, preferred-register: '' }3162  - { id: 8, class: gprc, preferred-register: '' }3163  - { id: 9, class: g8rc, preferred-register: '' }3164  - { id: 10, class: g8rc, preferred-register: '' }3165  - { id: 11, class: g8rc, preferred-register: '' }3166  - { id: 12, class: f4rc, preferred-register: '' }3167  - { id: 13, class: f4rc, preferred-register: '' }3168liveins:3169  - { reg: '$x3', virtual-reg: '%0' }3170  - { reg: '$x4', virtual-reg: '%1' }3171frameInfo:3172  isFrameAddressTaken: false3173  isReturnAddressTaken: false3174  hasStackMap:     false3175  hasPatchPoint:   false3176  stackSize:       03177  offsetAdjustment: 03178  maxAlignment:    03179  adjustsStack:    false3180  hasCalls:        false3181  stackProtector:  ''3182  maxCallFrameSize: 42949672953183  hasOpaqueSPAdjustment: false3184  hasVAStart:      false3185  hasMustTailInVarArgFunc: false3186  savePoint:       []3187  restorePoint:    []3188fixedStack:3189stack:3190constants:3191body:             |3192  bb.0.entry:3193    liveins: $x3, $x43194 3195    %1 = COPY $x43196    %0 = COPY $x33197    %2 = COPY %1.sub_323198    %3 = ADDI %2, 13199    %5 = IMPLICIT_DEF3200    %4 = INSERT_SUBREG %5, killed %3, 13201    %6 = LI8 883202    %7 = LFSX %0, killed %6 :: (load (s32) from %ir.arrayidx, !tbaa !14)3203    ; CHECK: LFS 88, %03204    ; CHECK-LATE: lfs 0, 88(3)3205    %8 = ADDI %2, 23206    %10 = IMPLICIT_DEF3207    %9 = INSERT_SUBREG %10, killed %8, 13208    %11 = LI8 -883209    %12 = LFSX %0, killed %11 :: (load (s32) from %ir.arrayidx3, !tbaa !14)3210    ; CHECK: LFS -88, killed %03211    ; CHECK-LATE: lfs 1, -88(3)3212    %13 = FADDS killed %7, killed %12, implicit $rm3213    $f1 = COPY %133214    BLR8 implicit $lr8, implicit $rm, implicit $f13215 3216...3217---3218name:            testLXSDX3219# CHECK-ALL: name: testLXSDX3220alignment:       163221exposesReturnsTwice: false3222legalized:       false3223regBankSelected: false3224selected:        false3225tracksRegLiveness: true3226registers:3227  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }3228  - { id: 1, class: g8rc, preferred-register: '' }3229  - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }3230  - { id: 3, class: gprc, preferred-register: '' }3231  - { id: 4, class: g8rc, preferred-register: '' }3232  - { id: 5, class: g8rc, preferred-register: '' }3233  - { id: 6, class: g8rc, preferred-register: '' }3234  - { id: 7, class: vsfrc, preferred-register: '' }3235  - { id: 8, class: gprc, preferred-register: '' }3236  - { id: 9, class: g8rc, preferred-register: '' }3237  - { id: 10, class: g8rc, preferred-register: '' }3238  - { id: 11, class: g8rc, preferred-register: '' }3239  - { id: 12, class: vsfrc, preferred-register: '' }3240  - { id: 13, class: vsfrc, preferred-register: '' }3241liveins:3242  - { reg: '$x3', virtual-reg: '%0' }3243  - { reg: '$x4', virtual-reg: '%1' }3244frameInfo:3245  isFrameAddressTaken: false3246  isReturnAddressTaken: false3247  hasStackMap:     false3248  hasPatchPoint:   false3249  stackSize:       03250  offsetAdjustment: 03251  maxAlignment:    03252  adjustsStack:    false3253  hasCalls:        false3254  stackProtector:  ''3255  maxCallFrameSize: 42949672953256  hasOpaqueSPAdjustment: false3257  hasVAStart:      false3258  hasMustTailInVarArgFunc: false3259  savePoint:       []3260  restorePoint:    []3261fixedStack:3262stack:3263constants:3264body:             |3265  bb.0.entry:3266    liveins: $x3, $x43267 3268    %1 = COPY $x43269    %0 = COPY $x33270    %2 = COPY %1.sub_323271    %3 = ADDI %2, 13272    %5 = IMPLICIT_DEF3273    %4 = INSERT_SUBREG %5, killed %3, 13274    %6 = LI8 1003275    %7 = LXSDX %0, killed %6, implicit $rm :: (load (s64) from %ir.arrayidx, !tbaa !12)3276    ; CHECK: DFLOADf64 100, %03277    ; CHECK-LATE: lfd 0, 100(3)3278    %8 = ADDI %2, 23279    %10 = IMPLICIT_DEF3280    %9 = INSERT_SUBREG %10, killed %8, 13281    %11 = LI8 -1203282    %12 = LXSDX %0, killed %11, implicit $rm :: (load (s64) from %ir.arrayidx3, !tbaa !12)3283    ; CHECK: DFLOADf64 -120, killed %03284    ; CHECK-LATE: lfd 1, -120(3)3285    %13 = XSADDDP killed %7, killed %12, implicit $rm3286    $f1 = COPY %133287    BLR8 implicit $lr8, implicit $rm, implicit $f13288 3289...3290---3291name:            testLXSSPX3292# CHECK-ALL: name: testLXSSPX3293alignment:       163294exposesReturnsTwice: false3295legalized:       false3296regBankSelected: false3297selected:        false3298tracksRegLiveness: true3299registers:3300  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }3301  - { id: 1, class: g8rc, preferred-register: '' }3302  - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }3303  - { id: 3, class: gprc, preferred-register: '' }3304  - { id: 4, class: g8rc, preferred-register: '' }3305  - { id: 5, class: g8rc, preferred-register: '' }3306  - { id: 6, class: g8rc, preferred-register: '' }3307  - { id: 7, class: vssrc, preferred-register: '' }3308  - { id: 8, class: gprc, preferred-register: '' }3309  - { id: 9, class: g8rc, preferred-register: '' }3310  - { id: 10, class: g8rc, preferred-register: '' }3311  - { id: 11, class: g8rc, preferred-register: '' }3312  - { id: 12, class: vssrc, preferred-register: '' }3313  - { id: 13, class: vssrc, preferred-register: '' }3314liveins:3315  - { reg: '$x3', virtual-reg: '%0' }3316  - { reg: '$x4', virtual-reg: '%1' }3317frameInfo:3318  isFrameAddressTaken: false3319  isReturnAddressTaken: false3320  hasStackMap:     false3321  hasPatchPoint:   false3322  stackSize:       03323  offsetAdjustment: 03324  maxAlignment:    03325  adjustsStack:    false3326  hasCalls:        false3327  stackProtector:  ''3328  maxCallFrameSize: 42949672953329  hasOpaqueSPAdjustment: false3330  hasVAStart:      false3331  hasMustTailInVarArgFunc: false3332  savePoint:       []3333  restorePoint:    []3334fixedStack:3335stack:3336constants:3337body:             |3338  bb.0.entry:3339    liveins: $x3, $x43340 3341    %1 = COPY $x43342    %0 = COPY $x33343    %2 = COPY %1.sub_323344    %3 = ADDI %2, 13345    %5 = IMPLICIT_DEF3346    %4 = INSERT_SUBREG %5, killed %3, 13347    %6 = LI8 963348    %7 = LXSSPX %0, killed %6 :: (load (s32) from %ir.arrayidx, !tbaa !14)3349    ; CHECK: DFLOADf32 96, %03350    ; CHECK-LATE: lfs 0, 96(3)3351    %8 = ADDI %2, 23352    %10 = IMPLICIT_DEF3353    %9 = INSERT_SUBREG %10, killed %8, 13354    %11 = LI8 -923355    %12 = LXSSPX %0, killed %11 :: (load (s32) from %ir.arrayidx3, !tbaa !14)3356    ; CHECK: DFLOADf32 -92, killed %03357    ; CHECK-LATE: lfs 1, -92(3)3358    %13 = XSADDSP killed %7, killed %123359    $f1 = COPY %133360    BLR8 implicit $lr8, implicit $rm, implicit $f13361 3362...3363---3364name:            testLXVX3365# CHECK-ALL: name: testLXVX3366alignment:       163367exposesReturnsTwice: false3368legalized:       false3369regBankSelected: false3370selected:        false3371tracksRegLiveness: true3372registers:3373  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }3374  - { id: 1, class: g8rc, preferred-register: '' }3375  - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }3376  - { id: 3, class: gprc, preferred-register: '' }3377  - { id: 4, class: g8rc, preferred-register: '' }3378  - { id: 5, class: g8rc, preferred-register: '' }3379  - { id: 6, class: g8rc, preferred-register: '' }3380  - { id: 7, class: vrrc, preferred-register: '' }3381  - { id: 8, class: gprc, preferred-register: '' }3382  - { id: 9, class: g8rc, preferred-register: '' }3383  - { id: 10, class: g8rc, preferred-register: '' }3384  - { id: 11, class: g8rc, preferred-register: '' }3385  - { id: 12, class: vrrc, preferred-register: '' }3386  - { id: 13, class: vrrc, preferred-register: '' }3387liveins:3388  - { reg: '$x3', virtual-reg: '%0' }3389  - { reg: '$x4', virtual-reg: '%1' }3390frameInfo:3391  isFrameAddressTaken: false3392  isReturnAddressTaken: false3393  hasStackMap:     false3394  hasPatchPoint:   false3395  stackSize:       03396  offsetAdjustment: 03397  maxAlignment:    03398  adjustsStack:    false3399  hasCalls:        false3400  stackProtector:  ''3401  maxCallFrameSize: 42949672953402  hasOpaqueSPAdjustment: false3403  hasVAStart:      false3404  hasMustTailInVarArgFunc: false3405  savePoint:       []3406  restorePoint:    []3407fixedStack:3408stack:3409constants:3410body:             |3411  bb.0.entry:3412    liveins: $x3, $x43413 3414    %1 = COPY $x43415    %0 = COPY $x33416    %2 = COPY %1.sub_323417    %3 = ADDI %2, 13418    %5 = IMPLICIT_DEF3419    %4 = INSERT_SUBREG %5, killed %3, 13420    %6 = LI8 323421    %7 = LXVX %0, killed %6 :: (load (s128) from %ir.arrayidx, !tbaa !3)3422    ; CHECK: LXV 32, %03423    ; CHECK-LATE: lxv 34, 32(3)3424    %8 = ADDI %2, 23425    %10 = IMPLICIT_DEF3426    %9 = INSERT_SUBREG %10, killed %8, 13427    %11 = LI8 -163428    %12 = LXVX %0, killed %11 :: (load (s128) from %ir.arrayidx3, !tbaa !3)3429    ; CHECK: LXV -16, killed %03430    ; CHECK-LATE: lxv 35, -16(3)3431    %13 = VADDUWM killed %12, killed %73432    $v2 = COPY %133433    BLR8 implicit $lr8, implicit $rm, implicit $v23434 3435...3436---3437name:            testOR3438# CHECK-ALL: name: testOR3439alignment:       163440exposesReturnsTwice: false3441legalized:       false3442regBankSelected: false3443selected:        false3444tracksRegLiveness: true3445registers:3446  - { id: 0, class: gprc, preferred-register: '' }3447  - { id: 1, class: g8rc, preferred-register: '' }3448  - { id: 2, class: gprc, preferred-register: '' }3449  - { id: 3, class: gprc, preferred-register: '' }3450liveins:3451  - { reg: '$x3', virtual-reg: '%0' }3452  - { reg: '$x4', virtual-reg: '%1' }3453frameInfo:3454  isFrameAddressTaken: false3455  isReturnAddressTaken: false3456  hasStackMap:     false3457  hasPatchPoint:   false3458  stackSize:       03459  offsetAdjustment: 03460  maxAlignment:    03461  adjustsStack:    false3462  hasCalls:        false3463  stackProtector:  ''3464  maxCallFrameSize: 42949672953465  hasOpaqueSPAdjustment: false3466  hasVAStart:      false3467  hasMustTailInVarArgFunc: false3468  savePoint:       []3469  restorePoint:    []3470fixedStack:3471stack:3472constants:3473body:             |3474  bb.0.entry:3475    liveins: $x3, $x43476 3477    %1 = COPY $x43478    %0 = LI 993479    %3 = COPY %1.sub_323480    %2 = OR %0, %33481    ; CHECK: ORI killed %3, 993482    ; CHECK-LATE: ori 3, 4, 993483    $x3 = EXTSW_32_64 %23484    BLR8 implicit $lr8, implicit $rm, implicit $x33485 3486...3487---3488name:            testOR83489# CHECK-ALL: name: testOR83490alignment:       163491exposesReturnsTwice: false3492legalized:       false3493regBankSelected: false3494selected:        false3495tracksRegLiveness: true3496registers:3497  - { id: 0, class: g8rc, preferred-register: '' }3498  - { id: 1, class: g8rc, preferred-register: '' }3499  - { id: 2, class: g8rc, preferred-register: '' }3500liveins:3501  - { reg: '$x3', virtual-reg: '%0' }3502  - { reg: '$x4', virtual-reg: '%1' }3503frameInfo:3504  isFrameAddressTaken: false3505  isReturnAddressTaken: false3506  hasStackMap:     false3507  hasPatchPoint:   false3508  stackSize:       03509  offsetAdjustment: 03510  maxAlignment:    03511  adjustsStack:    false3512  hasCalls:        false3513  stackProtector:  ''3514  maxCallFrameSize: 42949672953515  hasOpaqueSPAdjustment: false3516  hasVAStart:      false3517  hasMustTailInVarArgFunc: false3518  savePoint:       []3519  restorePoint:    []3520fixedStack:3521stack:3522constants:3523body:             |3524  bb.0.entry:3525    liveins: $x3, $x43526 3527    %1 = COPY $x43528    %0 = LI8 7773529    %2 = OR8 %1, %03530    ; CHECK: ORI8 killed %1, 7773531    ; CHECK-LATE: ori 3, 4, 7773532    $x3 = COPY %23533    BLR8 implicit $lr8, implicit $rm, implicit $x33534 3535...3536---3537name:            testORI3538# CHECK-ALL: name: testORI3539alignment:       163540exposesReturnsTwice: false3541legalized:       false3542regBankSelected: false3543selected:        false3544tracksRegLiveness: true3545registers:3546  - { id: 0, class: gprc, preferred-register: '' }3547  - { id: 1, class: gprc, preferred-register: '' }3548liveins:3549  - { reg: '$x3', virtual-reg: '%0' }3550frameInfo:3551  isFrameAddressTaken: false3552  isReturnAddressTaken: false3553  hasStackMap:     false3554  hasPatchPoint:   false3555  stackSize:       03556  offsetAdjustment: 03557  maxAlignment:    03558  adjustsStack:    false3559  hasCalls:        false3560  stackProtector:  ''3561  maxCallFrameSize: 42949672953562  hasOpaqueSPAdjustment: false3563  hasVAStart:      false3564  hasMustTailInVarArgFunc: false3565  savePoint:       []3566  restorePoint:    []3567fixedStack:3568stack:3569constants:3570body:             |3571  bb.0.entry:3572    liveins: $x33573 3574    %0 = LI 7773575    %1 = ORI %0, 883576    ; CHECK: LI8 8573577    ; CHECK-LATE: li 3, 8573578    $x3 = EXTSW_32_64 %13579    BLR8 implicit $lr8, implicit $rm, implicit $x33580 3581...3582---3583name:            testORI83584# CHECK-ALL: name: testORI83585alignment:       163586exposesReturnsTwice: false3587legalized:       false3588regBankSelected: false3589selected:        false3590tracksRegLiveness: true3591registers:3592  - { id: 0, class: g8rc, preferred-register: '' }3593  - { id: 1, class: g8rc, preferred-register: '' }3594liveins:3595  - { reg: '$x3', virtual-reg: '%0' }3596frameInfo:3597  isFrameAddressTaken: false3598  isReturnAddressTaken: false3599  hasStackMap:     false3600  hasPatchPoint:   false3601  stackSize:       03602  offsetAdjustment: 03603  maxAlignment:    03604  adjustsStack:    false3605  hasCalls:        false3606  stackProtector:  ''3607  maxCallFrameSize: 42949672953608  hasOpaqueSPAdjustment: false3609  hasVAStart:      false3610  hasMustTailInVarArgFunc: false3611  savePoint:       []3612  restorePoint:    []3613fixedStack:3614stack:3615constants:3616body:             |3617  bb.0.entry:3618    liveins: $x33619 3620    %0 = LI8 87213621    %1 = ORI8 %0, 993622    ; CHECK: LI8 88193623    ; CHECK-LATE: li 3, 88193624    $x3 = COPY %13625    BLR8 implicit $lr8, implicit $rm, implicit $x33626 3627...3628---3629name:            testRLDCL3630# CHECK-ALL: name: testRLDCL3631alignment:       163632exposesReturnsTwice: false3633legalized:       false3634regBankSelected: false3635selected:        false3636tracksRegLiveness: true3637registers:3638  - { id: 0, class: g8rc, preferred-register: '' }3639  - { id: 1, class: g8rc, preferred-register: '' }3640  - { id: 2, class: gprc, preferred-register: '' }3641  - { id: 3, class: gprc, preferred-register: '' }3642  - { id: 4, class: g8rc, preferred-register: '' }3643liveins:3644  - { reg: '$x3', virtual-reg: '%0' }3645  - { reg: '$x4', virtual-reg: '%1' }3646frameInfo:3647  isFrameAddressTaken: false3648  isReturnAddressTaken: false3649  hasStackMap:     false3650  hasPatchPoint:   false3651  stackSize:       03652  offsetAdjustment: 03653  maxAlignment:    03654  adjustsStack:    false3655  hasCalls:        false3656  stackProtector:  ''3657  maxCallFrameSize: 42949672953658  hasOpaqueSPAdjustment: false3659  hasVAStart:      false3660  hasMustTailInVarArgFunc: false3661  savePoint:       []3662  restorePoint:    []3663fixedStack:3664stack:3665constants:3666body:             |3667  bb.0.entry:3668    liveins: $x3, $x43669 3670    %1 = COPY $x43671    %0 = COPY $x33672    %2 = COPY %1.sub_323673    %3 = LI 143674    %4 = RLDCL %0, killed %3, 03675    ; CHECK: RLDICL killed %0, 14, 03676    ; CHECK-LATE: rotldi 3, 3, 143677    $x3 = COPY %43678    BLR8 implicit $lr8, implicit $rm, implicit $x33679 3680...3681---3682name:            testRLDCL_rec3683# CHECK-ALL: name: testRLDCL_rec3684alignment:       163685exposesReturnsTwice: false3686legalized:       false3687regBankSelected: false3688selected:        false3689tracksRegLiveness: true3690registers:3691  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }3692  - { id: 1, class: g8rc, preferred-register: '' }3693  - { id: 2, class: g8rc_and_g8rc_nox0, preferred-register: '' }3694  - { id: 3, class: gprc, preferred-register: '' }3695  - { id: 4, class: g8rc, preferred-register: '' }3696  - { id: 5, class: crrc, preferred-register: '' }3697  - { id: 6, class: g8rc, preferred-register: '' }3698liveins:3699  - { reg: '$x3', virtual-reg: '%0' }3700  - { reg: '$x4', virtual-reg: '%1' }3701frameInfo:3702  isFrameAddressTaken: false3703  isReturnAddressTaken: false3704  hasStackMap:     false3705  hasPatchPoint:   false3706  stackSize:       03707  offsetAdjustment: 03708  maxAlignment:    03709  adjustsStack:    false3710  hasCalls:        false3711  stackProtector:  ''3712  maxCallFrameSize: 42949672953713  hasOpaqueSPAdjustment: false3714  hasVAStart:      false3715  hasMustTailInVarArgFunc: false3716  savePoint:       []3717  restorePoint:    []3718fixedStack:3719stack:3720constants:3721body:             |3722  bb.0.entry:3723    liveins: $x3, $x43724 3725    %1 = COPY $x43726    %0 = COPY $x33727    %2 = RLDICL %1, 0, 583728    %3 = LI 373729    %4 = RLDCL_rec %0, killed %3, 0, implicit-def $cr03730    ; CHECK: RLDICL_rec %0, 37, 0, implicit-def $cr03731    ; CHECK-LATE: rotldi. 5, 3, 373732    %5 = COPY killed $cr03733    %6 = ISEL8 %2, %0, %5.sub_eq3734    $x3 = COPY %63735    BLR8 implicit $lr8, implicit $rm, implicit $x33736 3737...3738---3739name:            testRLDCR3740# CHECK-ALL: name: testRLDCR3741alignment:       163742exposesReturnsTwice: false3743legalized:       false3744regBankSelected: false3745selected:        false3746tracksRegLiveness: true3747registers:3748  - { id: 0, class: g8rc, preferred-register: '' }3749  - { id: 1, class: g8rc, preferred-register: '' }3750  - { id: 2, class: gprc, preferred-register: '' }3751  - { id: 3, class: gprc, preferred-register: '' }3752  - { id: 4, class: g8rc, preferred-register: '' }3753liveins:3754  - { reg: '$x3', virtual-reg: '%0' }3755  - { reg: '$x4', virtual-reg: '%1' }3756frameInfo:3757  isFrameAddressTaken: false3758  isReturnAddressTaken: false3759  hasStackMap:     false3760  hasPatchPoint:   false3761  stackSize:       03762  offsetAdjustment: 03763  maxAlignment:    03764  adjustsStack:    false3765  hasCalls:        false3766  stackProtector:  ''3767  maxCallFrameSize: 42949672953768  hasOpaqueSPAdjustment: false3769  hasVAStart:      false3770  hasMustTailInVarArgFunc: false3771  savePoint:       []3772  restorePoint:    []3773fixedStack:3774stack:3775constants:3776body:             |3777  bb.0.entry:3778    liveins: $x3, $x43779 3780    %1 = COPY $x43781    %0 = COPY $x33782    %2 = COPY %1.sub_323783    %3 = LI 03784    %4 = RLDCR %0, killed %3, 03785    ; CHECK: RLDICR killed %0, 0, 03786    ; CHECK-LATE: rldicr 3, 3, 0, 03787    $x3 = COPY %43788    BLR8 implicit $lr8, implicit $rm, implicit $x33789 3790...3791---3792name:            testRLDCR_rec3793# CHECK-ALL: name: testRLDCR_rec3794alignment:       163795exposesReturnsTwice: false3796legalized:       false3797regBankSelected: false3798selected:        false3799tracksRegLiveness: true3800registers:3801  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }3802  - { id: 1, class: g8rc, preferred-register: '' }3803  - { id: 2, class: g8rc_and_g8rc_nox0, preferred-register: '' }3804  - { id: 3, class: gprc, preferred-register: '' }3805  - { id: 4, class: g8rc, preferred-register: '' }3806  - { id: 5, class: crrc, preferred-register: '' }3807  - { id: 6, class: g8rc, preferred-register: '' }3808liveins:3809  - { reg: '$x3', virtual-reg: '%0' }3810  - { reg: '$x4', virtual-reg: '%1' }3811frameInfo:3812  isFrameAddressTaken: false3813  isReturnAddressTaken: false3814  hasStackMap:     false3815  hasPatchPoint:   false3816  stackSize:       03817  offsetAdjustment: 03818  maxAlignment:    03819  adjustsStack:    false3820  hasCalls:        false3821  stackProtector:  ''3822  maxCallFrameSize: 42949672953823  hasOpaqueSPAdjustment: false3824  hasVAStart:      false3825  hasMustTailInVarArgFunc: false3826  savePoint:       []3827  restorePoint:    []3828fixedStack:3829stack:3830constants:3831body:             |3832  bb.0.entry:3833    liveins: $x3, $x43834 3835    %1 = COPY $x43836    %0 = COPY $x33837    %2 = RLDICL %1, 0, 583838    %3 = LI 183839    %4 = RLDCR_rec %0, killed %3, 0, implicit-def $cr03840    ; CHECK: RLDICR_rec %0, 18, 0, implicit-def $cr03841    ; CHECK-LATE: rldicr. 5, 3, 18, 03842    %5 = COPY killed $cr03843    %6 = ISEL8 %2, %0, %5.sub_eq3844    $x3 = COPY %63845    BLR8 implicit $lr8, implicit $rm, implicit $x33846 3847...3848---3849name:            testRLDICL3850# CHECK-ALL: name: testRLDICL3851alignment:       163852exposesReturnsTwice: false3853legalized:       false3854regBankSelected: false3855selected:        false3856tracksRegLiveness: true3857registers:3858  - { id: 0, class: g8rc, preferred-register: '' }3859  - { id: 1, class: g8rc, preferred-register: '' }3860liveins:3861  - { reg: '$x3', virtual-reg: '%0' }3862frameInfo:3863  isFrameAddressTaken: false3864  isReturnAddressTaken: false3865  hasStackMap:     false3866  hasPatchPoint:   false3867  stackSize:       03868  offsetAdjustment: 03869  maxAlignment:    03870  adjustsStack:    false3871  hasCalls:        false3872  stackProtector:  ''3873  maxCallFrameSize: 42949672953874  hasOpaqueSPAdjustment: false3875  hasVAStart:      false3876  hasMustTailInVarArgFunc: false3877  savePoint:       []3878  restorePoint:    []3879fixedStack:3880stack:3881constants:3882body:             |3883  bb.0.entry:3884    liveins: $x33885 3886    %0 = LI8 -13887    %1 = RLDICL %0, 53, 493888    ; CHECK: LI8 327673889    ; CHECK-LATE: li 3, 327673890    $x3 = COPY %13891    BLR8 implicit $lr8, implicit $rm, implicit $x33892 3893...3894---3895name:            testRLDICL_MB03896# CHECK-ALL: name: testRLDICL_MB03897alignment:       163898exposesReturnsTwice: false3899legalized:       false3900regBankSelected: false3901selected:        false3902tracksRegLiveness: true3903registers:3904  - { id: 0, class: g8rc, preferred-register: '' }3905  - { id: 1, class: g8rc, preferred-register: '' }3906liveins:3907  - { reg: '$x3', virtual-reg: '%0' }3908frameInfo:3909  isFrameAddressTaken: false3910  isReturnAddressTaken: false3911  hasStackMap:     false3912  hasPatchPoint:   false3913  stackSize:       03914  offsetAdjustment: 03915  maxAlignment:    03916  adjustsStack:    false3917  hasCalls:        false3918  stackProtector:  ''3919  maxCallFrameSize: 42949672953920  hasOpaqueSPAdjustment: false3921  hasVAStart:      false3922  hasMustTailInVarArgFunc: false3923  savePoint:       []3924  restorePoint:    []3925fixedStack:3926stack:3927constants:3928body:             |3929  bb.0.entry:3930    liveins: $x33931 3932    %0 = LI8 323933    %1 = RLDICL %0, 60, 03934    ; CHECK: LI8 23935    ; CHECK-LATE: li 3, 23936    $x3 = COPY %13937    BLR8 implicit $lr8, implicit $rm, implicit $x33938 3939...3940---3941name:            testRLDICL_rec3942# CHECK-ALL: name: testRLDICL_rec3943alignment:       163944exposesReturnsTwice: false3945legalized:       false3946regBankSelected: false3947selected:        false3948tracksRegLiveness: true3949registers:3950  - { id: 0, class: g8rc, preferred-register: '' }3951  - { id: 1, class: g8rc_and_g8rc_nox0, preferred-register: '' }3952  - { id: 2, class: g8rc_and_g8rc_nox0, preferred-register: '' }3953  - { id: 3, class: crrc, preferred-register: '' }3954  - { id: 4, class: g8rc, preferred-register: '' }3955liveins:3956  - { reg: '$x3', virtual-reg: '%0' }3957  - { reg: '$x4', virtual-reg: '%1' }3958frameInfo:3959  isFrameAddressTaken: false3960  isReturnAddressTaken: false3961  hasStackMap:     false3962  hasPatchPoint:   false3963  stackSize:       03964  offsetAdjustment: 03965  maxAlignment:    03966  adjustsStack:    false3967  hasCalls:        false3968  stackProtector:  ''3969  maxCallFrameSize: 42949672953970  hasOpaqueSPAdjustment: false3971  hasVAStart:      false3972  hasMustTailInVarArgFunc: false3973  savePoint:       []3974  restorePoint:    []3975fixedStack:3976stack:3977constants:3978body:             |3979  bb.0.entry:3980    liveins: $x3, $x43981 3982    %1 = COPY $x43983    %0 = LI8 -13984    %2 = RLDICL_rec %0, 53, 48, implicit-def $cr03985    ; CHECK: ANDI8_rec killed %0, 655353986    ; CHECK-LATE: li 3, -13987    ; CHECK-LATE: andi. 3, 3, 655353988    %3 = COPY killed $cr03989    %4 = ISEL8 %1, %2, %3.sub_eq3990    $x3 = COPY %43991    BLR8 implicit $lr8, implicit $rm, implicit $x33992 3993...3994---3995name:            testRLDICL_rec23996# CHECK-ALL: name: testRLDICL_rec23997alignment:       163998exposesReturnsTwice: false3999legalized:       false4000regBankSelected: false4001selected:        false4002tracksRegLiveness: true4003registers:4004  - { id: 0, class: g8rc, preferred-register: '' }4005  - { id: 1, class: g8rc_and_g8rc_nox0, preferred-register: '' }4006  - { id: 2, class: g8rc_and_g8rc_nox0, preferred-register: '' }4007  - { id: 3, class: crrc, preferred-register: '' }4008  - { id: 4, class: g8rc, preferred-register: '' }4009liveins:4010  - { reg: '$x3', virtual-reg: '%0' }4011  - { reg: '$x4', virtual-reg: '%1' }4012frameInfo:4013  isFrameAddressTaken: false4014  isReturnAddressTaken: false4015  hasStackMap:     false4016  hasPatchPoint:   false4017  stackSize:       04018  offsetAdjustment: 04019  maxAlignment:    04020  adjustsStack:    false4021  hasCalls:        false4022  stackProtector:  ''4023  maxCallFrameSize: 42949672954024  hasOpaqueSPAdjustment: false4025  hasVAStart:      false4026  hasMustTailInVarArgFunc: false4027  savePoint:       []4028  restorePoint:    []4029fixedStack:4030stack:4031constants:4032body:             |4033  bb.0.entry:4034    liveins: $x3, $x44035 4036    %1 = COPY $x44037    %0 = LI8 2004038    %2 = RLDICL_rec %0, 61, 3, implicit-def $cr04039    ; CHECK: LI8 254040    ; CHECK: ANDI8_rec killed %0, 254041    ; CHECK-LATE-NOT: andi.4042    %3 = COPY killed $cr04043    %4 = ISEL8 %1, %2, %3.sub_eq4044    $x3 = COPY %44045    BLR8 implicit $lr8, implicit $rm, implicit $x34046 4047...4048---4049name:            testRLDICL_rec34050# CHECK-ALL: name: testRLDICL_rec34051alignment:       164052exposesReturnsTwice: false4053legalized:       false4054regBankSelected: false4055selected:        false4056tracksRegLiveness: true4057registers:4058  - { id: 0, class: g8rc, preferred-register: '' }4059  - { id: 1, class: g8rc_and_g8rc_nox0, preferred-register: '' }4060  - { id: 2, class: g8rc_and_g8rc_nox0, preferred-register: '' }4061  - { id: 3, class: crrc, preferred-register: '' }4062  - { id: 4, class: g8rc, preferred-register: '' }4063liveins:4064  - { reg: '$x3', virtual-reg: '%0' }4065  - { reg: '$x4', virtual-reg: '%1' }4066frameInfo:4067  isFrameAddressTaken: false4068  isReturnAddressTaken: false4069  hasStackMap:     false4070  hasPatchPoint:   false4071  stackSize:       04072  offsetAdjustment: 04073  maxAlignment:    04074  adjustsStack:    false4075  hasCalls:        false4076  stackProtector:  ''4077  maxCallFrameSize: 42949672954078  hasOpaqueSPAdjustment: false4079  hasVAStart:      false4080  hasMustTailInVarArgFunc: false4081  savePoint:       []4082  restorePoint:    []4083fixedStack:4084stack:4085constants:4086body:             |4087  bb.0.entry:4088    liveins: $x3, $x44089 4090    %1 = COPY $x44091    %0 = LI8 24092    %2 = RLDICL_rec %0, 32, 32, implicit-def $cr04093    ; CHECK: ANDI8_rec killed %0, 04094    ; CHECK-LATE: li 3, 24095    ; CHECK-LATE: andi. 3, 3, 04096    %3 = COPY killed $cr04097    %4 = ISEL8 %1, %2, %3.sub_eq4098    $x3 = COPY %44099    BLR8 implicit $lr8, implicit $rm, implicit $x34100 4101...4102---4103name:            testRLWINM4104# CHECK-ALL: name: testRLWINM4105alignment:       164106exposesReturnsTwice: false4107legalized:       false4108regBankSelected: false4109selected:        false4110tracksRegLiveness: true4111registers:4112  - { id: 0, class: g8rc, preferred-register: '' }4113  - { id: 1, class: gprc, preferred-register: '' }4114  - { id: 2, class: gprc, preferred-register: '' }4115  - { id: 3, class: g8rc, preferred-register: '' }4116  - { id: 4, class: gprc, preferred-register: '' }4117liveins:4118  - { reg: '$x3', virtual-reg: '%0' }4119frameInfo:4120  isFrameAddressTaken: false4121  isReturnAddressTaken: false4122  hasStackMap:     false4123  hasPatchPoint:   false4124  stackSize:       04125  offsetAdjustment: 04126  maxAlignment:    04127  adjustsStack:    false4128  hasCalls:        false4129  stackProtector:  ''4130  maxCallFrameSize: 42949672954131  hasOpaqueSPAdjustment: false4132  hasVAStart:      false4133  hasMustTailInVarArgFunc: false4134  savePoint:       []4135  restorePoint:    []4136fixedStack:4137stack:4138constants:4139body:             |4140  bb.0.entry:4141    liveins: $x34142 4143    %0 = COPY $x34144    %1 = COPY %0.sub_324145    %3 = IMPLICIT_DEF4146    %2 = LI 174147    %4 = RLWINM killed %2, 4, 20, 274148    ; CHECK: LI8 2724149    ; CHECK-LATE: li 3, 2724150    $x3 = EXTSW_32_64 %44151    BLR8 implicit $lr8, implicit $rm, implicit $x34152 4153...4154---4155name:            testRLWINMFullReg4156# CHECK-ALL: name: testRLWINMFullReg4157alignment:       164158exposesReturnsTwice: false4159legalized:       false4160regBankSelected: false4161selected:        false4162tracksRegLiveness: true4163registers:4164  - { id: 0, class: g8rc, preferred-register: '' }4165  - { id: 1, class: gprc, preferred-register: '' }4166  - { id: 2, class: gprc, preferred-register: '' }4167  - { id: 3, class: g8rc, preferred-register: '' }4168  - { id: 4, class: gprc, preferred-register: '' }4169liveins:4170  - { reg: '$x3', virtual-reg: '%0' }4171frameInfo:4172  isFrameAddressTaken: false4173  isReturnAddressTaken: false4174  hasStackMap:     false4175  hasPatchPoint:   false4176  stackSize:       04177  offsetAdjustment: 04178  maxAlignment:    04179  adjustsStack:    false4180  hasCalls:        false4181  stackProtector:  ''4182  maxCallFrameSize: 42949672954183  hasOpaqueSPAdjustment: false4184  hasVAStart:      false4185  hasMustTailInVarArgFunc: false4186  savePoint:       []4187  restorePoint:    []4188fixedStack:4189stack:4190constants:4191body:             |4192  bb.0.entry:4193    liveins: $x34194 4195    %0 = COPY $x34196    %1 = COPY %0.sub_324197    %3 = IMPLICIT_DEF4198    %2 = LI 24199    %4 = RLWINM killed %2, 31, 0, 314200    ; CHECK: LI 14201    ; CHECK-LATE: li 3, 14202    $x3 = EXTSW_32_64 %44203    BLR8 implicit $lr8, implicit $rm, implicit $x34204 4205...4206---4207name:            testRLWINMFullRegOutOfRange4208# CHECK-ALL: name: testRLWINMFullRegOutOfRange4209alignment:       164210exposesReturnsTwice: false4211legalized:       false4212regBankSelected: false4213selected:        false4214tracksRegLiveness: true4215registers:4216  - { id: 0, class: g8rc, preferred-register: '' }4217  - { id: 1, class: gprc, preferred-register: '' }4218  - { id: 2, class: gprc, preferred-register: '' }4219  - { id: 3, class: g8rc, preferred-register: '' }4220  - { id: 4, class: gprc, preferred-register: '' }4221liveins:4222  - { reg: '$x3', virtual-reg: '%0' }4223frameInfo:4224  isFrameAddressTaken: false4225  isReturnAddressTaken: false4226  hasStackMap:     false4227  hasPatchPoint:   false4228  stackSize:       04229  offsetAdjustment: 04230  maxAlignment:    04231  adjustsStack:    false4232  hasCalls:        false4233  stackProtector:  ''4234  maxCallFrameSize: 42949672954235  hasOpaqueSPAdjustment: false4236  hasVAStart:      false4237  hasMustTailInVarArgFunc: false4238  savePoint:       []4239  restorePoint:    []4240fixedStack:4241stack:4242constants:4243body:             |4244  bb.0.entry:4245    liveins: $x34246 4247    %0 = COPY $x34248    %1 = COPY %0.sub_324249    %3 = IMPLICIT_DEF4250    %2 = LI 14251    %4 = RLWINM killed %2, 31, 0, 314252    ; CHECK: RLWINM killed %2, 31, 0, 314253    ; CHECK-LATE: rotlwi 3, 3, 314254    $x3 = EXTSW_32_64 %44255    BLR8 implicit $lr8, implicit $rm, implicit $x34256 4257...4258---4259name:            testRLWINM84260# CHECK-ALL: name: testRLWINM84261alignment:       164262exposesReturnsTwice: false4263legalized:       false4264regBankSelected: false4265selected:        false4266tracksRegLiveness: true4267registers:4268  - { id: 0, class: g8rc, preferred-register: '' }4269  - { id: 1, class: g8rc, preferred-register: '' }4270liveins:4271  - { reg: '$x3', virtual-reg: '%0' }4272frameInfo:4273  isFrameAddressTaken: false4274  isReturnAddressTaken: false4275  hasStackMap:     false4276  hasPatchPoint:   false4277  stackSize:       04278  offsetAdjustment: 04279  maxAlignment:    04280  adjustsStack:    false4281  hasCalls:        false4282  stackProtector:  ''4283  maxCallFrameSize: 42949672954284  hasOpaqueSPAdjustment: false4285  hasVAStart:      false4286  hasMustTailInVarArgFunc: false4287  savePoint:       []4288  restorePoint:    []4289fixedStack:4290stack:4291constants:4292body:             |4293  bb.0.entry:4294    liveins: $x34295 4296    %0 = LI8 2344297    %1 = RLWINM8 %0, 4, 20, 274298    ; CHECK: LI8 37444299    ; CHECK-LATE: li 3, 37444300    $x3 = COPY %14301    BLR8 implicit $lr8, implicit $rm, implicit $x34302 4303...4304---4305name:            testRLWINM_rec4306# CHECK-ALL: name: testRLWINM_rec4307alignment:       164308exposesReturnsTwice: false4309legalized:       false4310regBankSelected: false4311selected:        false4312tracksRegLiveness: true4313registers:4314  - { id: 0, class: g8rc, preferred-register: '' }4315  - { id: 1, class: g8rc, preferred-register: '' }4316  - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }4317  - { id: 3, class: gprc_and_gprc_nor0, preferred-register: '' }4318  - { id: 4, class: gprc, preferred-register: '' }4319  - { id: 5, class: crrc, preferred-register: '' }4320  - { id: 6, class: gprc, preferred-register: '' }4321  - { id: 7, class: g8rc, preferred-register: '' }4322  - { id: 8, class: g8rc, preferred-register: '' }4323  - { id: 9, class: g8rc, preferred-register: '' }4324liveins:4325  - { reg: '$x3', virtual-reg: '%0' }4326  - { reg: '$x4', virtual-reg: '%1' }4327frameInfo:4328  isFrameAddressTaken: false4329  isReturnAddressTaken: false4330  hasStackMap:     false4331  hasPatchPoint:   false4332  stackSize:       04333  offsetAdjustment: 04334  maxAlignment:    04335  adjustsStack:    false4336  hasCalls:        false4337  stackProtector:  ''4338  maxCallFrameSize: 42949672954339  hasOpaqueSPAdjustment: false4340  hasVAStart:      false4341  hasMustTailInVarArgFunc: false4342  savePoint:       []4343  restorePoint:    []4344fixedStack:4345stack:4346constants:4347body:             |4348  bb.0.entry:4349    liveins: $x3, $x44350 4351    %1 = COPY $x44352    %0 = COPY $x34353    %2 = COPY %1.sub_324354    %3 = LI -224355    %4 = RLWINM_rec %3, 0, 24, 31, implicit-def $cr04356    ; CHECK: LI -224357    ; CHECK: ANDI_rec %3, 655144358    ; CHECK-LATE: li 3, -224359    ; CHECK-LATE: andi. 5, 3, 2344360    %5 = COPY killed $cr04361    %6 = ISEL %2, %3, %5.sub_eq4362    %8 = IMPLICIT_DEF4363    %7 = INSERT_SUBREG %8, killed %6, 14364    %9 = RLDICL killed %7, 0, 324365    $x3 = COPY %94366    BLR8 implicit $lr8, implicit $rm, implicit $x34367 4368...4369---4370name:            testRLWINM_rec24371# CHECK-ALL: name: testRLWINM_rec24372alignment:       164373exposesReturnsTwice: false4374legalized:       false4375regBankSelected: false4376selected:        false4377tracksRegLiveness: true4378registers:4379  - { id: 0, class: g8rc, preferred-register: '' }4380  - { id: 1, class: g8rc, preferred-register: '' }4381  - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }4382  - { id: 3, class: gprc_and_gprc_nor0, preferred-register: '' }4383  - { id: 4, class: gprc, preferred-register: '' }4384  - { id: 5, class: crrc, preferred-register: '' }4385  - { id: 6, class: gprc, preferred-register: '' }4386  - { id: 7, class: g8rc, preferred-register: '' }4387  - { id: 8, class: g8rc, preferred-register: '' }4388  - { id: 9, class: g8rc, preferred-register: '' }4389liveins:4390  - { reg: '$x3', virtual-reg: '%0' }4391  - { reg: '$x4', virtual-reg: '%1' }4392frameInfo:4393  isFrameAddressTaken: false4394  isReturnAddressTaken: false4395  hasStackMap:     false4396  hasPatchPoint:   false4397  stackSize:       04398  offsetAdjustment: 04399  maxAlignment:    04400  adjustsStack:    false4401  hasCalls:        false4402  stackProtector:  ''4403  maxCallFrameSize: 42949672954404  hasOpaqueSPAdjustment: false4405  hasVAStart:      false4406  hasMustTailInVarArgFunc: false4407  savePoint:       []4408  restorePoint:    []4409fixedStack:4410stack:4411constants:4412body:             |4413  bb.0.entry:4414    liveins: $x3, $x44415 4416    %1 = COPY $x44417    %0 = COPY $x34418    %2 = COPY %1.sub_324419    %3 = LI -224420    %4 = RLWINM_rec %3, 5, 24, 31, implicit-def $cr04421    ; CHECK: LI -224422    ; CHECK-NOT: ANDI8_rec %3, 655144423    ; CHECK-LATE-NOT: andi.4424    %5 = COPY killed $cr04425    %6 = ISEL %2, %3, %5.sub_eq4426    %8 = IMPLICIT_DEF4427    %7 = INSERT_SUBREG %8, killed %6, 14428    %9 = RLDICL killed %7, 0, 324429    $x3 = COPY %94430    BLR8 implicit $lr8, implicit $rm, implicit $x34431 4432...4433---4434name:            testRLWINM8_rec4435# CHECK-ALL: name: testRLWINM8_rec4436alignment:       164437exposesReturnsTwice: false4438legalized:       false4439regBankSelected: false4440selected:        false4441tracksRegLiveness: true4442registers:4443  - { id: 0, class: g8rc, preferred-register: '' }4444  - { id: 1, class: g8rc_and_g8rc_nox0, preferred-register: '' }4445  - { id: 2, class: g8rc, preferred-register: '' }4446  - { id: 3, class: g8rc, preferred-register: '' }4447  - { id: 4, class: g8rc, preferred-register: '' }4448  - { id: 5, class: g8rc, preferred-register: '' }4449  - { id: 6, class: g8rc_and_g8rc_nox0, preferred-register: '' }4450  - { id: 7, class: crrc, preferred-register: '' }4451  - { id: 8, class: g8rc, preferred-register: '' }4452liveins:4453  - { reg: '$x3', virtual-reg: '%0' }4454  - { reg: '$x4', virtual-reg: '%1' }4455frameInfo:4456  isFrameAddressTaken: false4457  isReturnAddressTaken: false4458  hasStackMap:     false4459  hasPatchPoint:   false4460  stackSize:       04461  offsetAdjustment: 04462  maxAlignment:    04463  adjustsStack:    false4464  hasCalls:        false4465  stackProtector:  ''4466  maxCallFrameSize: 42949672954467  hasOpaqueSPAdjustment: false4468  hasVAStart:      false4469  hasMustTailInVarArgFunc: false4470  savePoint:       []4471  restorePoint:    []4472fixedStack:4473stack:4474constants:4475body:             |4476  bb.0.entry:4477    liveins: $x3, $x44478 4479    %1 = COPY $x44480    %0 = COPY $x34481    %2 = LI8 -184482    %3 = RLWINM8_rec %2, 4, 20, 27, implicit-def $cr04483    ; CHECK: ANDI8_rec killed %2, 38084484    ; CHECK-LATE: li 3, -184485    ; CHECK-LATE: andi. 3, 3, 38084486    %7 = COPY killed $cr04487    %6 = RLDICL killed %3, 0, 324488    %8 = ISEL8 %1, %6, %7.sub_eq4489    $x3 = COPY %84490    BLR8 implicit $lr8, implicit $rm, implicit $x34491 4492...4493---4494name:            testSLD4495# CHECK-ALL: name: testSLD4496alignment:       164497exposesReturnsTwice: false4498legalized:       false4499regBankSelected: false4500selected:        false4501tracksRegLiveness: true4502registers:4503  - { id: 0, class: g8rc, preferred-register: '' }4504  - { id: 1, class: g8rc, preferred-register: '' }4505  - { id: 2, class: gprc, preferred-register: '' }4506  - { id: 3, class: g8rc, preferred-register: '' }4507liveins:4508  - { reg: '$x3', virtual-reg: '%0' }4509  - { reg: '$x4', virtual-reg: '%1' }4510frameInfo:4511  isFrameAddressTaken: false4512  isReturnAddressTaken: false4513  hasStackMap:     false4514  hasPatchPoint:   false4515  stackSize:       04516  offsetAdjustment: 04517  maxAlignment:    04518  adjustsStack:    false4519  hasCalls:        false4520  stackProtector:  ''4521  maxCallFrameSize: 42949672954522  hasOpaqueSPAdjustment: false4523  hasVAStart:      false4524  hasMustTailInVarArgFunc: false4525  savePoint:       []4526  restorePoint:    []4527fixedStack:4528stack:4529constants:4530body:             |4531  bb.0.entry:4532    liveins: $x3, $x44533 4534    %1 = COPY $x44535    %0 = COPY $x34536    %2 = LI 134537    %3 = SLD %0, killed %24538    ; CHECK: RLDICR killed %0, 13, 504539    ; CHECK-LATE: sldi 3, 3, 134540    $x3 = COPY %34541    BLR8 implicit $lr8, implicit $rm, implicit $x34542 4543...4544---4545name:            testSLD_rec4546# CHECK-ALL: name: testSLD_rec4547alignment:       164548exposesReturnsTwice: false4549legalized:       false4550regBankSelected: false4551selected:        false4552tracksRegLiveness: true4553registers:4554  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }4555  - { id: 1, class: g8rc_and_g8rc_nox0, preferred-register: '' }4556  - { id: 2, class: gprc, preferred-register: '' }4557  - { id: 3, class: g8rc, preferred-register: '' }4558  - { id: 4, class: crrc, preferred-register: '' }4559  - { id: 5, class: g8rc, preferred-register: '' }4560liveins:4561  - { reg: '$x3', virtual-reg: '%0' }4562  - { reg: '$x4', virtual-reg: '%1' }4563frameInfo:4564  isFrameAddressTaken: false4565  isReturnAddressTaken: false4566  hasStackMap:     false4567  hasPatchPoint:   false4568  stackSize:       04569  offsetAdjustment: 04570  maxAlignment:    04571  adjustsStack:    false4572  hasCalls:        false4573  stackProtector:  ''4574  maxCallFrameSize: 42949672954575  hasOpaqueSPAdjustment: false4576  hasVAStart:      false4577  hasMustTailInVarArgFunc: false4578  savePoint:       []4579  restorePoint:    []4580fixedStack:4581stack:4582constants:4583body:             |4584  bb.0.entry:4585    liveins: $x3, $x44586 4587    %1 = COPY $x44588    %0 = COPY $x34589    %2 = LI 174590    %3 = SLD_rec %0, killed %2, implicit-def $cr04591    ; CHECK: RLDICR_rec %0, 17, 46, implicit-def $cr04592    ; CHECK-LATE: rldicr. 5, 3, 17, 464593    %4 = COPY killed $cr04594    %5 = ISEL8 %1, %0, %4.sub_eq4595    $x3 = COPY %54596    BLR8 implicit $lr8, implicit $rm, implicit $x34597 4598...4599---4600name:            testSRD4601# CHECK-ALL: name: testSRD4602alignment:       164603exposesReturnsTwice: false4604legalized:       false4605regBankSelected: false4606selected:        false4607tracksRegLiveness: true4608registers:4609  - { id: 0, class: g8rc, preferred-register: '' }4610  - { id: 1, class: g8rc, preferred-register: '' }4611  - { id: 2, class: gprc, preferred-register: '' }4612  - { id: 3, class: g8rc, preferred-register: '' }4613liveins:4614  - { reg: '$x3', virtual-reg: '%0' }4615  - { reg: '$x4', virtual-reg: '%1' }4616frameInfo:4617  isFrameAddressTaken: false4618  isReturnAddressTaken: false4619  hasStackMap:     false4620  hasPatchPoint:   false4621  stackSize:       04622  offsetAdjustment: 04623  maxAlignment:    04624  adjustsStack:    false4625  hasCalls:        false4626  stackProtector:  ''4627  maxCallFrameSize: 42949672954628  hasOpaqueSPAdjustment: false4629  hasVAStart:      false4630  hasMustTailInVarArgFunc: false4631  savePoint:       []4632  restorePoint:    []4633fixedStack:4634stack:4635constants:4636body:             |4637  bb.0.entry:4638    liveins: $x3, $x44639 4640    %1 = COPY $x44641    %0 = COPY $x34642    %2 = LI 44643    %3 = SRD %0, killed %24644    ; CHECK: RLDICL killed %0, 60, 44645    ; CHECK-LATE: rldicl 3, 3, 60, 44646    $x3 = COPY %34647    BLR8 implicit $lr8, implicit $rm, implicit $x34648 4649...4650---4651name:            testSRD_rec4652# CHECK-ALL: name: testSRD_rec4653alignment:       164654exposesReturnsTwice: false4655legalized:       false4656regBankSelected: false4657selected:        false4658tracksRegLiveness: true4659registers:4660  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }4661  - { id: 1, class: g8rc_and_g8rc_nox0, preferred-register: '' }4662  - { id: 2, class: gprc, preferred-register: '' }4663  - { id: 3, class: g8rc, preferred-register: '' }4664  - { id: 4, class: crrc, preferred-register: '' }4665  - { id: 5, class: g8rc, preferred-register: '' }4666liveins:4667  - { reg: '$x3', virtual-reg: '%0' }4668  - { reg: '$x4', virtual-reg: '%1' }4669frameInfo:4670  isFrameAddressTaken: false4671  isReturnAddressTaken: false4672  hasStackMap:     false4673  hasPatchPoint:   false4674  stackSize:       04675  offsetAdjustment: 04676  maxAlignment:    04677  adjustsStack:    false4678  hasCalls:        false4679  stackProtector:  ''4680  maxCallFrameSize: 42949672954681  hasOpaqueSPAdjustment: false4682  hasVAStart:      false4683  hasMustTailInVarArgFunc: false4684  savePoint:       []4685  restorePoint:    []4686fixedStack:4687stack:4688constants:4689body:             |4690  bb.0.entry:4691    liveins: $x3, $x44692 4693    %1 = COPY $x44694    %0 = COPY $x34695    %2 = LI 174696    %3 = SRD_rec %0, killed %2, implicit-def $cr04697    ; CHECK: RLDICL_rec %0, 47, 17, implicit-def $cr04698    ; CHECK-LATE: rldicl. 5, 3, 47, 174699    %4 = COPY killed $cr04700    %5 = ISEL8 %1, %0, %4.sub_eq4701    $x3 = COPY %54702    BLR8 implicit $lr8, implicit $rm, implicit $x34703 4704...4705---4706name:            testSLW4707# CHECK-ALL: name: testSLW4708alignment:       164709exposesReturnsTwice: false4710legalized:       false4711regBankSelected: false4712selected:        false4713tracksRegLiveness: true4714registers:4715  - { id: 0, class: g8rc, preferred-register: '' }4716  - { id: 1, class: g8rc, preferred-register: '' }4717  - { id: 2, class: gprc, preferred-register: '' }4718  - { id: 3, class: g8rc, preferred-register: '' }4719  - { id: 4, class: g8rc, preferred-register: '' }4720  - { id: 5, class: gprc, preferred-register: '' }4721  - { id: 6, class: g8rc, preferred-register: '' }4722  - { id: 7, class: g8rc, preferred-register: '' }4723  - { id: 8, class: gprc, preferred-register: '' }4724liveins:4725  - { reg: '$x3', virtual-reg: '%0' }4726  - { reg: '$x4', virtual-reg: '%1' }4727frameInfo:4728  isFrameAddressTaken: false4729  isReturnAddressTaken: false4730  hasStackMap:     false4731  hasPatchPoint:   false4732  stackSize:       04733  offsetAdjustment: 04734  maxAlignment:    04735  adjustsStack:    false4736  hasCalls:        false4737  stackProtector:  ''4738  maxCallFrameSize: 42949672954739  hasOpaqueSPAdjustment: false4740  hasVAStart:      false4741  hasMustTailInVarArgFunc: false4742  savePoint:       []4743  restorePoint:    []4744fixedStack:4745stack:4746constants:4747body:             |4748  bb.0.entry:4749    liveins: $x3, $x44750 4751    %1 = COPY $x44752    %0 = COPY $x34753    %2 = COPY %1.sub_324754    %5 = LI 214755    %8 = SLW killed %2, killed %54756    ; CHECK: RLWINM killed %2, 21, 0, 104757    ; CHECK-LATE: slwi 3, 4, 214758    $x3 = EXTSW_32_64 %84759    BLR8 implicit $lr8, implicit $rm, implicit $x34760 4761...4762---4763name:            testSLW_rec4764# CHECK-ALL: name: testSLW_rec4765alignment:       164766exposesReturnsTwice: false4767legalized:       false4768regBankSelected: false4769selected:        false4770tracksRegLiveness: true4771registers:4772  - { id: 0, class: g8rc, preferred-register: '' }4773  - { id: 1, class: g8rc, preferred-register: '' }4774  - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }4775  - { id: 3, class: gprc_and_gprc_nor0, preferred-register: '' }4776  - { id: 4, class: gprc, preferred-register: '' }4777  - { id: 5, class: crrc, preferred-register: '' }4778  - { id: 6, class: gprc, preferred-register: '' }4779  - { id: 7, class: g8rc, preferred-register: '' }4780  - { id: 8, class: g8rc, preferred-register: '' }4781  - { id: 9, class: g8rc, preferred-register: '' }4782liveins:4783  - { reg: '$x3', virtual-reg: '%0' }4784  - { reg: '$x4', virtual-reg: '%1' }4785frameInfo:4786  isFrameAddressTaken: false4787  isReturnAddressTaken: false4788  hasStackMap:     false4789  hasPatchPoint:   false4790  stackSize:       04791  offsetAdjustment: 04792  maxAlignment:    04793  adjustsStack:    false4794  hasCalls:        false4795  stackProtector:  ''4796  maxCallFrameSize: 42949672954797  hasOpaqueSPAdjustment: false4798  hasVAStart:      false4799  hasMustTailInVarArgFunc: false4800  savePoint:       []4801  restorePoint:    []4802fixedStack:4803stack:4804constants:4805body:             |4806  bb.0.entry:4807    liveins: $x3, $x44808 4809    %1 = COPY $x44810    %0 = COPY $x34811    %2 = LI 114812    %3 = COPY %0.sub_324813    %4 = SLW_rec %3, %2, implicit-def $cr04814    ; CHECK: RLWINM_rec %3, 11, 0, 20, implicit-def $cr04815    ; CHECK-LATE: rlwinm. 5, 3, 11, 0, 204816    %5 = COPY killed $cr04817    %6 = ISEL %2, %3, %5.sub_eq4818    %8 = IMPLICIT_DEF4819    %7 = INSERT_SUBREG %8, killed %6, 14820    %9 = RLDICL killed %7, 0, 324821    $x3 = COPY %94822    BLR8 implicit $lr8, implicit $rm, implicit $x34823 4824...4825---4826name:            testSRW4827# CHECK-ALL: name: testSRW4828alignment:       164829exposesReturnsTwice: false4830legalized:       false4831regBankSelected: false4832selected:        false4833tracksRegLiveness: true4834registers:4835  - { id: 0, class: g8rc, preferred-register: '' }4836  - { id: 1, class: g8rc, preferred-register: '' }4837  - { id: 2, class: gprc, preferred-register: '' }4838  - { id: 3, class: g8rc, preferred-register: '' }4839  - { id: 4, class: g8rc, preferred-register: '' }4840  - { id: 5, class: gprc, preferred-register: '' }4841  - { id: 6, class: g8rc, preferred-register: '' }4842  - { id: 7, class: g8rc, preferred-register: '' }4843  - { id: 8, class: gprc, preferred-register: '' }4844liveins:4845  - { reg: '$x3', virtual-reg: '%0' }4846  - { reg: '$x4', virtual-reg: '%1' }4847frameInfo:4848  isFrameAddressTaken: false4849  isReturnAddressTaken: false4850  hasStackMap:     false4851  hasPatchPoint:   false4852  stackSize:       04853  offsetAdjustment: 04854  maxAlignment:    04855  adjustsStack:    false4856  hasCalls:        false4857  stackProtector:  ''4858  maxCallFrameSize: 42949672954859  hasOpaqueSPAdjustment: false4860  hasVAStart:      false4861  hasMustTailInVarArgFunc: false4862  savePoint:       []4863  restorePoint:    []4864fixedStack:4865stack:4866constants:4867body:             |4868  bb.0.entry:4869    liveins: $x3, $x44870 4871    %1 = COPY $x44872    %0 = COPY $x34873    %2 = LI 84874    %5 = COPY %0.sub_324875    %8 = SRW killed %5, killed %24876    ; CHECK: RLWINM killed %5, 24, 8, 314877    ; CHECK-LATE: srwi 3, 3, 84878    $x3 = EXTSW_32_64 %84879    BLR8 implicit $lr8, implicit $rm, implicit $x34880 4881...4882---4883name:            testSRW_rec4884# CHECK-ALL: name: testSRW_rec4885alignment:       164886exposesReturnsTwice: false4887legalized:       false4888regBankSelected: false4889selected:        false4890tracksRegLiveness: true4891registers:4892  - { id: 0, class: g8rc, preferred-register: '' }4893  - { id: 1, class: g8rc, preferred-register: '' }4894  - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }4895  - { id: 3, class: gprc_and_gprc_nor0, preferred-register: '' }4896  - { id: 4, class: gprc, preferred-register: '' }4897  - { id: 5, class: crrc, preferred-register: '' }4898  - { id: 6, class: gprc, preferred-register: '' }4899  - { id: 7, class: g8rc, preferred-register: '' }4900  - { id: 8, class: g8rc, preferred-register: '' }4901  - { id: 9, class: g8rc, preferred-register: '' }4902liveins:4903  - { reg: '$x3', virtual-reg: '%0' }4904  - { reg: '$x4', virtual-reg: '%1' }4905frameInfo:4906  isFrameAddressTaken: false4907  isReturnAddressTaken: false4908  hasStackMap:     false4909  hasPatchPoint:   false4910  stackSize:       04911  offsetAdjustment: 04912  maxAlignment:    04913  adjustsStack:    false4914  hasCalls:        false4915  stackProtector:  ''4916  maxCallFrameSize: 42949672954917  hasOpaqueSPAdjustment: false4918  hasVAStart:      false4919  hasMustTailInVarArgFunc: false4920  savePoint:       []4921  restorePoint:    []4922fixedStack:4923stack:4924constants:4925body:             |4926  bb.0.entry:4927    liveins: $x3, $x44928 4929    %1 = COPY $x44930    %0 = COPY $x34931    %2 = LI 74932    %3 = COPY %0.sub_324933    %4 = SRW_rec %3, %2, implicit-def $cr04934    ; CHECK: RLWINM_rec %3, 25, 7, 314935    ; CHECK-LATE: rlwinm. 5, 3, 25, 7, 314936    %5 = COPY killed $cr04937    %6 = ISEL %2, %3, %5.sub_eq4938    %8 = IMPLICIT_DEF4939    %7 = INSERT_SUBREG %8, killed %6, 14940    %9 = RLDICL killed %7, 0, 324941    $x3 = COPY %94942    BLR8 implicit $lr8, implicit $rm, implicit $x34943 4944...4945---4946name:            testSRAW4947# CHECK-ALL: name: testSRAW4948alignment:       164949exposesReturnsTwice: false4950legalized:       false4951regBankSelected: false4952selected:        false4953tracksRegLiveness: true4954registers:4955  - { id: 0, class: g8rc, preferred-register: '' }4956  - { id: 1, class: g8rc, preferred-register: '' }4957  - { id: 2, class: gprc, preferred-register: '' }4958  - { id: 3, class: gprc, preferred-register: '' }4959  - { id: 4, class: gprc, preferred-register: '' }4960  - { id: 5, class: g8rc, preferred-register: '' }4961liveins:4962  - { reg: '$x3', virtual-reg: '%0' }4963  - { reg: '$x4', virtual-reg: '%1' }4964frameInfo:4965  isFrameAddressTaken: false4966  isReturnAddressTaken: false4967  hasStackMap:     false4968  hasPatchPoint:   false4969  stackSize:       04970  offsetAdjustment: 04971  maxAlignment:    04972  adjustsStack:    false4973  hasCalls:        false4974  stackProtector:  ''4975  maxCallFrameSize: 42949672954976  hasOpaqueSPAdjustment: false4977  hasVAStart:      false4978  hasMustTailInVarArgFunc: false4979  savePoint:       []4980  restorePoint:    []4981fixedStack:4982stack:4983constants:4984body:             |4985  bb.0.entry:4986    liveins: $x3, $x44987 4988    %1 = COPY $x44989    %0 = COPY $x34990    %2 = LI 154991    %3 = COPY %0.sub_324992    %4 = SRAW killed %3, killed %2, implicit-def dead $carry4993    ; CHECK:      %6:g8rc = IMPLICIT_DEF4994    ; CHECK-NEXT: %7:g8rc = INSERT_SUBREG %6, killed %3, %subreg.sub_324995    ; CHECK-NEXT: %8:g8rc = SRAWI8 killed %7, 15, implicit-def $carry, implicit-def dead $carry4996    ; CHECK-NEXT: %4:gprc = COPY killed %8.sub_324997    ; CHECK-LATE: srawi 3, 3, 154998    %5 = EXTSW_32_64 killed %44999    $x3 = COPY %55000    BLR8 implicit $lr8, implicit $rm, implicit $x35001 5002...5003---5004name:            testSRAW_rec5005# CHECK-ALL: name: testSRAW_rec5006alignment:       165007exposesReturnsTwice: false5008legalized:       false5009regBankSelected: false5010selected:        false5011tracksRegLiveness: true5012registers:5013  - { id: 0, class: g8rc, preferred-register: '' }5014  - { id: 1, class: g8rc, preferred-register: '' }5015  - { id: 2, class: gprc_and_gprc_nor0, preferred-register: '' }5016  - { id: 3, class: gprc, preferred-register: '' }5017  - { id: 4, class: gprc_and_gprc_nor0, preferred-register: '' }5018  - { id: 5, class: crrc, preferred-register: '' }5019  - { id: 6, class: gprc, preferred-register: '' }5020  - { id: 7, class: g8rc, preferred-register: '' }5021liveins:5022  - { reg: '$x3', virtual-reg: '%0' }5023  - { reg: '$x4', virtual-reg: '%1' }5024frameInfo:5025  isFrameAddressTaken: false5026  isReturnAddressTaken: false5027  hasStackMap:     false5028  hasPatchPoint:   false5029  stackSize:       05030  offsetAdjustment: 05031  maxAlignment:    05032  adjustsStack:    false5033  hasCalls:        false5034  stackProtector:  ''5035  maxCallFrameSize: 42949672955036  hasOpaqueSPAdjustment: false5037  hasVAStart:      false5038  hasMustTailInVarArgFunc: false5039  savePoint:       []5040  restorePoint:    []5041fixedStack:5042stack:5043constants:5044body:             |5045  bb.0.entry:5046    liveins: $x3, $x45047 5048    %1 = COPY $x45049    %0 = COPY $x35050    %2 = LI 85051    %3 = COPY %0.sub_325052    %4 = SRAW_rec killed %3, %2, implicit-def dead $carry, implicit-def $cr05053    ; CHECK:  %11:g8rc = SRAWI8_rec killed %10, 8, implicit-def $carry, implicit-def $cr0, implicit-def dead $carry, implicit-def $cr05054    ; CHECK-LATE: srawi. 3, 3, 85055    %5 = COPY killed $cr05056    %6 = ISEL %2, %4, %5.sub_eq5057    %7 = EXTSW_32_64 killed %65058    $x3 = COPY %75059    BLR8 implicit $lr8, implicit $rm, implicit $x35060 5061...5062---5063name:            testSRAD5064# CHECK-ALL: name: testSRAD5065alignment:       165066exposesReturnsTwice: false5067legalized:       false5068regBankSelected: false5069selected:        false5070tracksRegLiveness: true5071registers:5072  - { id: 0, class: g8rc, preferred-register: '' }5073  - { id: 1, class: g8rc, preferred-register: '' }5074  - { id: 2, class: gprc, preferred-register: '' }5075  - { id: 3, class: g8rc, preferred-register: '' }5076liveins:5077  - { reg: '$x3', virtual-reg: '%0' }5078  - { reg: '$x4', virtual-reg: '%1' }5079frameInfo:5080  isFrameAddressTaken: false5081  isReturnAddressTaken: false5082  hasStackMap:     false5083  hasPatchPoint:   false5084  stackSize:       05085  offsetAdjustment: 05086  maxAlignment:    05087  adjustsStack:    false5088  hasCalls:        false5089  stackProtector:  ''5090  maxCallFrameSize: 42949672955091  hasOpaqueSPAdjustment: false5092  hasVAStart:      false5093  hasMustTailInVarArgFunc: false5094  savePoint:       []5095  restorePoint:    []5096fixedStack:5097stack:5098constants:5099body:             |5100  bb.0.entry:5101    liveins: $x3, $x45102 5103    %1 = COPY $x45104    %0 = COPY $x35105    %2 = LI 445106    %3 = SRAD %0, killed %2, implicit-def dead $carry5107    ; CHECK: SRADI killed %0, 44, implicit-def dead $carry5108    ; CHECK-LATE: sradi 3, 3, 445109    $x3 = COPY %35110    BLR8 implicit $lr8, implicit $rm, implicit $x35111 5112...5113---5114name:            testSRAD_rec5115# CHECK-ALL: name: testSRAD_rec5116alignment:       165117exposesReturnsTwice: false5118legalized:       false5119regBankSelected: false5120selected:        false5121tracksRegLiveness: true5122registers:5123  - { id: 0, class: g8rc, preferred-register: '' }5124  - { id: 1, class: g8rc_and_g8rc_nox0, preferred-register: '' }5125  - { id: 2, class: gprc, preferred-register: '' }5126  - { id: 3, class: g8rc_and_g8rc_nox0, preferred-register: '' }5127  - { id: 4, class: crrc, preferred-register: '' }5128  - { id: 5, class: g8rc, preferred-register: '' }5129liveins:5130  - { reg: '$x3', virtual-reg: '%0' }5131  - { reg: '$x4', virtual-reg: '%1' }5132frameInfo:5133  isFrameAddressTaken: false5134  isReturnAddressTaken: false5135  hasStackMap:     false5136  hasPatchPoint:   false5137  stackSize:       05138  offsetAdjustment: 05139  maxAlignment:    05140  adjustsStack:    false5141  hasCalls:        false5142  stackProtector:  ''5143  maxCallFrameSize: 42949672955144  hasOpaqueSPAdjustment: false5145  hasVAStart:      false5146  hasMustTailInVarArgFunc: false5147  savePoint:       []5148  restorePoint:    []5149fixedStack:5150stack:5151constants:5152body:             |5153  bb.0.entry:5154    liveins: $x3, $x45155 5156    %1 = COPY $x45157    %0 = COPY $x35158    %2 = LI 615159    %3 = SRAD_rec %0, killed %2, implicit-def dead $carry, implicit-def $cr05160    ; CHECK: SRADI_rec killed %0, 61, implicit-def dead $carry, implicit-def $cr05161    ; CHECK-LATE: sradi. 3, 3, 615162    %4 = COPY killed $cr05163    %5 = ISEL8 %1, %3, %4.sub_eq5164    $x3 = COPY %55165    BLR8 implicit $lr8, implicit $rm, implicit $x35166 5167...5168---5169name:            testSTBUX5170# CHECK-ALL: name: testSTBUX5171alignment:       165172exposesReturnsTwice: false5173legalized:       false5174regBankSelected: false5175selected:        false5176tracksRegLiveness: true5177registers:5178  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }5179  - { id: 1, class: g8rc, preferred-register: '' }5180  - { id: 2, class: g8rc, preferred-register: '' }5181  - { id: 3, class: gprc, preferred-register: '' }5182  - { id: 4, class: gprc_and_gprc_nor0, preferred-register: '' }5183  - { id: 5, class: gprc, preferred-register: '' }5184  - { id: 6, class: g8rc, preferred-register: '' }5185  - { id: 7, class: g8rc, preferred-register: '' }5186  - { id: 8, class: g8rc, preferred-register: '' }5187  - { id: 9, class: gprc, preferred-register: '' }5188  - { id: 10, class: g8rc, preferred-register: '' }5189  - { id: 11, class: g8rc, preferred-register: '' }5190  - { id: 12, class: g8rc, preferred-register: '' }5191  - { id: 13, class: g8rc_and_g8rc_nox0, preferred-register: '' }5192  - { id: 14, class: g8rc_and_g8rc_nox0, preferred-register: '' }5193liveins:5194  - { reg: '$x3', virtual-reg: '%0' }5195  - { reg: '$x4', virtual-reg: '%1' }5196  - { reg: '$x5', virtual-reg: '%2' }5197frameInfo:5198  isFrameAddressTaken: false5199  isReturnAddressTaken: false5200  hasStackMap:     false5201  hasPatchPoint:   false5202  stackSize:       05203  offsetAdjustment: 05204  maxAlignment:    05205  adjustsStack:    false5206  hasCalls:        false5207  stackProtector:  ''5208  maxCallFrameSize: 42949672955209  hasOpaqueSPAdjustment: false5210  hasVAStart:      false5211  hasMustTailInVarArgFunc: false5212  savePoint:       []5213  restorePoint:    []5214fixedStack:5215stack:5216constants:5217body:             |5218  bb.0.entry:5219    liveins: $x3, $x4, $x55220 5221    %2 = COPY $x55222    %1 = COPY $x45223    %0 = COPY $x35224    %3 = COPY %1.sub_325225    %4 = COPY %2.sub_325226    %5 = ADDI %4, 15227    %7 = IMPLICIT_DEF5228    %6 = INSERT_SUBREG %7, killed %5, 15229    %8 = LI8 9665230    %13 = STBUX %3, %0, killed %8 :: (store (s8) into %ir.arrayidx, !tbaa !3)5231    ; CHECK: STBU %3, 966, %05232    ; CHECK-LATE: {{[0-9]+}}, 966({{[0-9]+}})5233    %9 = ADDI %4, 25234    %11 = IMPLICIT_DEF5235    %10 = INSERT_SUBREG %11, killed %9, 15236    %12 = LI8 7775237    %14 = STBUX %3, %0, killed %12 :: (store (s8) into %ir.arrayidx3, !tbaa !3)5238    ; CHECK: STBU killed %3, 777, killed %05239    ; CHECK-LATE: {{[0-9]+}}, 777({{[0-9]+}})5240    BLR8 implicit $lr8, implicit $rm5241 5242...5243---5244name:            testSTBX5245# CHECK-ALL: name: testSTBX5246alignment:       165247exposesReturnsTwice: false5248legalized:       false5249regBankSelected: false5250selected:        false5251tracksRegLiveness: true5252registers:5253  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }5254  - { id: 1, class: g8rc, preferred-register: '' }5255  - { id: 2, class: g8rc, preferred-register: '' }5256  - { id: 3, class: gprc, preferred-register: '' }5257  - { id: 4, class: gprc_and_gprc_nor0, preferred-register: '' }5258  - { id: 5, class: gprc, preferred-register: '' }5259  - { id: 6, class: g8rc, preferred-register: '' }5260  - { id: 7, class: g8rc, preferred-register: '' }5261  - { id: 8, class: g8rc, preferred-register: '' }5262  - { id: 9, class: gprc, preferred-register: '' }5263  - { id: 10, class: g8rc, preferred-register: '' }5264  - { id: 11, class: g8rc, preferred-register: '' }5265  - { id: 12, class: g8rc, preferred-register: '' }5266liveins:5267  - { reg: '$x3', virtual-reg: '%0' }5268  - { reg: '$x4', virtual-reg: '%1' }5269  - { reg: '$x5', virtual-reg: '%2' }5270frameInfo:5271  isFrameAddressTaken: false5272  isReturnAddressTaken: false5273  hasStackMap:     false5274  hasPatchPoint:   false5275  stackSize:       05276  offsetAdjustment: 05277  maxAlignment:    05278  adjustsStack:    false5279  hasCalls:        false5280  stackProtector:  ''5281  maxCallFrameSize: 42949672955282  hasOpaqueSPAdjustment: false5283  hasVAStart:      false5284  hasMustTailInVarArgFunc: false5285  savePoint:       []5286  restorePoint:    []5287fixedStack:5288stack:5289constants:5290body:             |5291  bb.0.entry:5292    liveins: $x3, $x4, $x55293 5294    %2 = COPY $x55295    %1 = COPY $x45296    %0 = LI8 9755297    %3 = COPY %1.sub_325298    %4 = COPY %2.sub_325299    %5 = ADDI %4, 15300    %7 = IMPLICIT_DEF5301    %6 = INSERT_SUBREG %7, killed %5, 15302    %8 = RLDICL killed %6, 0, 325303    STBX %3, %0, killed %8 :: (store (s8) into %ir.arrayidx, !tbaa !3)5304    ; CHECK: STB %3, 975, killed %85305    ; CHECK-LATE: stb 4, 975(6)5306    %9 = ADDI %4, 25307    %11 = IMPLICIT_DEF5308    %10 = INSERT_SUBREG %11, killed %9, 15309    %12 = RLDICL killed %10, 0, 325310    STBX %3, %0, killed %12 :: (store (s8) into %ir.arrayidx3, !tbaa !3)5311    ; CHECK: STB killed %3, 975, killed %125312    ; CHECK-LATE: stb 4, 975(5)5313    BLR8 implicit $lr8, implicit $rm5314 5315...5316---5317name:            testSTHUX5318# CHECK-ALL: name: testSTHUX5319alignment:       165320exposesReturnsTwice: false5321legalized:       false5322regBankSelected: false5323selected:        false5324tracksRegLiveness: true5325registers:5326  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }5327  - { id: 1, class: g8rc, preferred-register: '' }5328  - { id: 2, class: g8rc, preferred-register: '' }5329  - { id: 3, class: gprc, preferred-register: '' }5330  - { id: 4, class: gprc_and_gprc_nor0, preferred-register: '' }5331  - { id: 5, class: gprc, preferred-register: '' }5332  - { id: 6, class: g8rc, preferred-register: '' }5333  - { id: 7, class: g8rc, preferred-register: '' }5334  - { id: 8, class: g8rc, preferred-register: '' }5335  - { id: 9, class: gprc, preferred-register: '' }5336  - { id: 10, class: g8rc, preferred-register: '' }5337  - { id: 11, class: g8rc, preferred-register: '' }5338  - { id: 12, class: g8rc, preferred-register: '' }5339  - { id: 13, class: g8rc_and_g8rc_nox0, preferred-register: '' }5340  - { id: 14, class: g8rc_and_g8rc_nox0, preferred-register: '' }5341liveins:5342  - { reg: '$x3', virtual-reg: '%0' }5343  - { reg: '$x4', virtual-reg: '%1' }5344  - { reg: '$x5', virtual-reg: '%2' }5345frameInfo:5346  isFrameAddressTaken: false5347  isReturnAddressTaken: false5348  hasStackMap:     false5349  hasPatchPoint:   false5350  stackSize:       05351  offsetAdjustment: 05352  maxAlignment:    05353  adjustsStack:    false5354  hasCalls:        false5355  stackProtector:  ''5356  maxCallFrameSize: 42949672955357  hasOpaqueSPAdjustment: false5358  hasVAStart:      false5359  hasMustTailInVarArgFunc: false5360  savePoint:       []5361  restorePoint:    []5362fixedStack:5363stack:5364constants:5365body:             |5366  bb.0.entry:5367    liveins: $x3, $x4, $x55368 5369    %2 = COPY $x55370    %1 = COPY $x45371    %0 = COPY $x35372    %3 = COPY %1.sub_325373    %4 = COPY %2.sub_325374    %5 = ADDI %4, 15375    %7 = IMPLICIT_DEF5376    %6 = INSERT_SUBREG %7, killed %5, 15377    %8 = LI8 320005378    %13 = STHUX %3, %0, killed %8 :: (store (s16) into %ir.arrayidx, !tbaa !6)5379    ; CHECK: STHU %3, 32000, %05380    ; CHECK-LATE: sthu {{[0-9]+}}, 32000({{[0-9]+}})5381    %9 = ADDI %4, 25382    %11 = IMPLICIT_DEF5383    %10 = INSERT_SUBREG %11, killed %9, 15384    %12 = LI8 -7615385    %14 = STHUX %3, %0, killed %12 :: (store (s16) into %ir.arrayidx3, !tbaa !6)5386    ; CHECK: STHU killed %3, -761, killed %05387    ; CHECK-LATE: sthu {{[0-9]+}}, -761({{[0-9]+}})5388    BLR8 implicit $lr8, implicit $rm5389 5390...5391---5392name:            testSTHX5393# CHECK-ALL: name: testSTHX5394alignment:       165395exposesReturnsTwice: false5396legalized:       false5397regBankSelected: false5398selected:        false5399tracksRegLiveness: true5400registers:5401  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }5402  - { id: 1, class: g8rc, preferred-register: '' }5403  - { id: 2, class: g8rc, preferred-register: '' }5404  - { id: 3, class: gprc, preferred-register: '' }5405  - { id: 4, class: gprc_and_gprc_nor0, preferred-register: '' }5406  - { id: 5, class: gprc, preferred-register: '' }5407  - { id: 6, class: g8rc, preferred-register: '' }5408  - { id: 7, class: g8rc, preferred-register: '' }5409  - { id: 8, class: g8rc, preferred-register: '' }5410  - { id: 9, class: gprc, preferred-register: '' }5411  - { id: 10, class: g8rc, preferred-register: '' }5412  - { id: 11, class: g8rc, preferred-register: '' }5413  - { id: 12, class: g8rc, preferred-register: '' }5414liveins:5415  - { reg: '$x3', virtual-reg: '%0' }5416  - { reg: '$x4', virtual-reg: '%1' }5417  - { reg: '$x5', virtual-reg: '%2' }5418frameInfo:5419  isFrameAddressTaken: false5420  isReturnAddressTaken: false5421  hasStackMap:     false5422  hasPatchPoint:   false5423  stackSize:       05424  offsetAdjustment: 05425  maxAlignment:    05426  adjustsStack:    false5427  hasCalls:        false5428  stackProtector:  ''5429  maxCallFrameSize: 42949672955430  hasOpaqueSPAdjustment: false5431  hasVAStart:      false5432  hasMustTailInVarArgFunc: false5433  savePoint:       []5434  restorePoint:    []5435fixedStack:5436stack:5437constants:5438body:             |5439  bb.0.entry:5440    liveins: $x3, $x4, $x55441 5442    %2 = COPY $x55443    %1 = COPY $x45444    %0 = COPY $x35445    %3 = COPY %1.sub_325446    %4 = COPY %2.sub_325447    %5 = ADDI %4, 15448    %7 = IMPLICIT_DEF5449    %6 = INSERT_SUBREG %7, killed %5, 15450    %8 = LI8 9005451    STHX %3, %0, killed %8 :: (store (s8) into %ir.arrayidx, !tbaa !3)5452    ; CHECK: STH %3, 900, %05453    ; CHECK-LATE: sth {{[0-9]+}}, 900({{[0-9]+}})5454    %9 = ADDI %4, 25455    %11 = IMPLICIT_DEF5456    %10 = INSERT_SUBREG %11, killed %9, 15457    %12 = LI8 -9005458    STHX %3, %0, killed %12 :: (store (s8) into %ir.arrayidx3, !tbaa !3)5459    ; CHECK: STH killed %3, -900, killed %05460    ; CHECK-LATE: sth {{[0-9]+}}, -900({{[0-9]+}})5461    BLR8 implicit $lr8, implicit $rm5462 5463...5464---5465name:            testSTWUX5466# CHECK-ALL: name: testSTWUX5467alignment:       165468exposesReturnsTwice: false5469legalized:       false5470regBankSelected: false5471selected:        false5472tracksRegLiveness: true5473registers:5474  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }5475  - { id: 1, class: g8rc, preferred-register: '' }5476  - { id: 2, class: g8rc, preferred-register: '' }5477  - { id: 3, class: gprc, preferred-register: '' }5478  - { id: 4, class: gprc_and_gprc_nor0, preferred-register: '' }5479  - { id: 5, class: gprc, preferred-register: '' }5480  - { id: 6, class: g8rc, preferred-register: '' }5481  - { id: 7, class: g8rc, preferred-register: '' }5482  - { id: 8, class: g8rc, preferred-register: '' }5483  - { id: 9, class: gprc, preferred-register: '' }5484  - { id: 10, class: g8rc, preferred-register: '' }5485  - { id: 11, class: g8rc, preferred-register: '' }5486  - { id: 12, class: g8rc, preferred-register: '' }5487  - { id: 13, class: g8rc_and_g8rc_nox0, preferred-register: '' }5488  - { id: 14, class: g8rc_and_g8rc_nox0, preferred-register: '' }5489liveins:5490  - { reg: '$x3', virtual-reg: '%0' }5491  - { reg: '$x4', virtual-reg: '%1' }5492  - { reg: '$x5', virtual-reg: '%2' }5493frameInfo:5494  isFrameAddressTaken: false5495  isReturnAddressTaken: false5496  hasStackMap:     false5497  hasPatchPoint:   false5498  stackSize:       05499  offsetAdjustment: 05500  maxAlignment:    05501  adjustsStack:    false5502  hasCalls:        false5503  stackProtector:  ''5504  maxCallFrameSize: 42949672955505  hasOpaqueSPAdjustment: false5506  hasVAStart:      false5507  hasMustTailInVarArgFunc: false5508  savePoint:       []5509  restorePoint:    []5510fixedStack:5511stack:5512constants:5513body:             |5514  bb.0.entry:5515    liveins: $x3, $x4, $x55516 5517    %2 = COPY $x55518    %1 = COPY $x45519    %0 = COPY $x35520    %3 = COPY %1.sub_325521    %4 = COPY %2.sub_325522    %5 = ADDI %4, 15523    %7 = IMPLICIT_DEF5524    %6 = INSERT_SUBREG %7, killed %5, 15525    %8 = LI8 1115526    %13 = STWUX %3, %0, killed %8 :: (store (s32) into %ir.arrayidx, !tbaa !8)5527    ; CHECK: STWU %3, 111, %05528    ; CHECK-LATE: stwu {{[0-9]+}}, 111({{[0-9]+}})5529    %9 = ADDI %4, 25530    %11 = IMPLICIT_DEF5531    %10 = INSERT_SUBREG %11, killed %9, 15532    %12 = LI8 05533    %14 = STWUX %3, %0, killed %12 :: (store (s32) into %ir.arrayidx3, !tbaa !8)5534    ; CHECK: STWU killed %3, 0, killed %05535    ; CHECK-LATE: stwu {{[0-9]+}}, 0({{[0-9]+}})5536    BLR8 implicit $lr8, implicit $rm5537 5538...5539---5540name:            testSTWX5541# CHECK-ALL: name: testSTWX5542alignment:       165543exposesReturnsTwice: false5544legalized:       false5545regBankSelected: false5546selected:        false5547tracksRegLiveness: true5548registers:5549  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }5550  - { id: 1, class: g8rc, preferred-register: '' }5551  - { id: 2, class: g8rc, preferred-register: '' }5552  - { id: 3, class: gprc, preferred-register: '' }5553  - { id: 4, class: gprc_and_gprc_nor0, preferred-register: '' }5554  - { id: 5, class: gprc, preferred-register: '' }5555  - { id: 6, class: g8rc, preferred-register: '' }5556  - { id: 7, class: g8rc, preferred-register: '' }5557  - { id: 8, class: g8rc, preferred-register: '' }5558  - { id: 9, class: gprc, preferred-register: '' }5559  - { id: 10, class: g8rc, preferred-register: '' }5560  - { id: 11, class: g8rc, preferred-register: '' }5561  - { id: 12, class: g8rc, preferred-register: '' }5562liveins:5563  - { reg: '$x3', virtual-reg: '%0' }5564  - { reg: '$x4', virtual-reg: '%1' }5565  - { reg: '$x5', virtual-reg: '%2' }5566frameInfo:5567  isFrameAddressTaken: false5568  isReturnAddressTaken: false5569  hasStackMap:     false5570  hasPatchPoint:   false5571  stackSize:       05572  offsetAdjustment: 05573  maxAlignment:    05574  adjustsStack:    false5575  hasCalls:        false5576  stackProtector:  ''5577  maxCallFrameSize: 42949672955578  hasOpaqueSPAdjustment: false5579  hasVAStart:      false5580  hasMustTailInVarArgFunc: false5581  savePoint:       []5582  restorePoint:    []5583fixedStack:5584stack:5585constants:5586body:             |5587  bb.0.entry:5588    liveins: $x3, $x4, $x55589 5590    %2 = COPY $x55591    %1 = COPY $x45592    %0 = COPY $x35593    %3 = COPY %1.sub_325594    %4 = COPY %2.sub_325595    %5 = ADDI %4, 15596    %7 = IMPLICIT_DEF5597    %6 = INSERT_SUBREG %7, killed %5, 15598    %8 = LI8 25599    STWX %3, %0, killed %8 :: (store (s32) into %ir.arrayidx, !tbaa !8)5600    ; CHECK: STW %3, 2, %05601    ; CHECK-LATE: stw 4, 2(3)5602    %9 = ADDI %4, 25603    %11 = IMPLICIT_DEF5604    %10 = INSERT_SUBREG %11, killed %9, 15605    %12 = LI8 995606    STWX %3, %0, killed %12 :: (store (s32) into %ir.arrayidx3, !tbaa !8)5607    ; CHECK: STW killed %3, 99, killed %05608    ; CHECK-LATE: stw 4, 99(3)5609    BLR8 implicit $lr8, implicit $rm5610 5611...5612---5613name:            testSTDUX5614# CHECK-ALL: name: testSTDUX5615alignment:       165616exposesReturnsTwice: false5617legalized:       false5618regBankSelected: false5619selected:        false5620tracksRegLiveness: true5621registers:5622  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }5623  - { id: 1, class: g8rc, preferred-register: '' }5624  - { id: 2, class: g8rc, preferred-register: '' }5625  - { id: 3, class: gprc_and_gprc_nor0, preferred-register: '' }5626  - { id: 4, class: gprc, preferred-register: '' }5627  - { id: 5, class: g8rc, preferred-register: '' }5628  - { id: 6, class: g8rc, preferred-register: '' }5629  - { id: 7, class: g8rc, preferred-register: '' }5630  - { id: 8, class: gprc, preferred-register: '' }5631  - { id: 9, class: g8rc, preferred-register: '' }5632  - { id: 10, class: g8rc, preferred-register: '' }5633  - { id: 11, class: g8rc, preferred-register: '' }5634  - { id: 12, class: g8rc_and_g8rc_nox0, preferred-register: '' }5635  - { id: 13, class: g8rc_and_g8rc_nox0, preferred-register: '' }5636liveins:5637  - { reg: '$x3', virtual-reg: '%0' }5638  - { reg: '$x4', virtual-reg: '%1' }5639  - { reg: '$x5', virtual-reg: '%2' }5640frameInfo:5641  isFrameAddressTaken: false5642  isReturnAddressTaken: false5643  hasStackMap:     false5644  hasPatchPoint:   false5645  stackSize:       05646  offsetAdjustment: 05647  maxAlignment:    05648  adjustsStack:    false5649  hasCalls:        false5650  stackProtector:  ''5651  maxCallFrameSize: 42949672955652  hasOpaqueSPAdjustment: false5653  hasVAStart:      false5654  hasMustTailInVarArgFunc: false5655  savePoint:       []5656  restorePoint:    []5657fixedStack:5658stack:5659constants:5660body:             |5661  bb.0.entry:5662    liveins: $x3, $x4, $x55663 5664    %2 = COPY $x55665    %1 = COPY $x45666    %0 = COPY $x35667    %3 = COPY %2.sub_325668    %4 = ADDI %3, 15669    %6 = IMPLICIT_DEF5670    %5 = INSERT_SUBREG %6, killed %4, 15671    %7 = LI8 4445672    %12 = STDUX %1, %0, killed %7 :: (store (s64) into %ir.arrayidx, !tbaa !10)5673    ; CHECK: STDU %1, 444, %05674    ; CHECK-LATE: stdu {{[0-9]+}}, 444({{[0-9]+}})5675    %8 = ADDI %3, 25676    %10 = IMPLICIT_DEF5677    %9 = INSERT_SUBREG %10, killed %8, 15678    %11 = LI8 -85679    %13 = STDUX %1, %0, killed %11 :: (store (s64) into %ir.arrayidx3, !tbaa !10)5680    ; CHECK: STDU killed %1, -8, killed %05681    ; CHECK-LATE: stdu {{[0-9]+}}, -8({{[0-9]+}})5682    BLR8 implicit $lr8, implicit $rm5683 5684...5685---5686name:            testSTDX5687# CHECK-ALL: name: testSTDX5688alignment:       165689exposesReturnsTwice: false5690legalized:       false5691regBankSelected: false5692selected:        false5693tracksRegLiveness: true5694registers:5695  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }5696  - { id: 1, class: g8rc, preferred-register: '' }5697  - { id: 2, class: g8rc, preferred-register: '' }5698  - { id: 3, class: gprc_and_gprc_nor0, preferred-register: '' }5699  - { id: 4, class: gprc, preferred-register: '' }5700  - { id: 5, class: g8rc, preferred-register: '' }5701  - { id: 6, class: g8rc, preferred-register: '' }5702  - { id: 7, class: g8rc, preferred-register: '' }5703  - { id: 8, class: gprc, preferred-register: '' }5704  - { id: 9, class: g8rc, preferred-register: '' }5705  - { id: 10, class: g8rc, preferred-register: '' }5706  - { id: 11, class: g8rc, preferred-register: '' }5707liveins:5708  - { reg: '$x3', virtual-reg: '%0' }5709  - { reg: '$x4', virtual-reg: '%1' }5710  - { reg: '$x5', virtual-reg: '%2' }5711frameInfo:5712  isFrameAddressTaken: false5713  isReturnAddressTaken: false5714  hasStackMap:     false5715  hasPatchPoint:   false5716  stackSize:       05717  offsetAdjustment: 05718  maxAlignment:    05719  adjustsStack:    false5720  hasCalls:        false5721  stackProtector:  ''5722  maxCallFrameSize: 42949672955723  hasOpaqueSPAdjustment: false5724  hasVAStart:      false5725  hasMustTailInVarArgFunc: false5726  savePoint:       []5727  restorePoint:    []5728fixedStack:5729stack:5730constants:5731body:             |5732  bb.0.entry:5733    liveins: $x3, $x4, $x55734 5735    %2 = COPY $x55736    %1 = COPY $x45737    %0 = LI8 10005738    %3 = COPY %2.sub_325739    %4 = ADDI %3, 15740    %6 = IMPLICIT_DEF5741    %5 = INSERT_SUBREG %6, killed %4, 15742    %7 = LI8 9005743    STDX %1, %0, killed %7 :: (store (s64) into %ir.arrayidx, !tbaa !10)5744    ; CHECK: STD %1, 1000, killed %75745    ; CHECK-LATE: {{[0-9]+}}, 1000({{[0-9]+}})5746    %8 = ADDI %3, 25747    %10 = IMPLICIT_DEF5748    %9 = INSERT_SUBREG %10, killed %8, 15749    %11 = LI8 -9005750    STDX %1, %0, killed %11 :: (store (s64) into %ir.arrayidx3, !tbaa !10)5751    ; CHECK: STD killed %1, 1000, killed %115752    ; CHECK-LATE: {{[0-9]+}}, 1000({{[0-9]+}})5753    BLR8 implicit $lr8, implicit $rm5754 5755...5756---5757name:            testSTFSX5758# CHECK-ALL: name: testSTFSX5759alignment:       165760exposesReturnsTwice: false5761legalized:       false5762regBankSelected: false5763selected:        false5764tracksRegLiveness: true5765registers:5766  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }5767  - { id: 1, class: f4rc, preferred-register: '' }5768  - { id: 2, class: g8rc, preferred-register: '' }5769  - { id: 3, class: gprc_and_gprc_nor0, preferred-register: '' }5770  - { id: 4, class: gprc, preferred-register: '' }5771  - { id: 5, class: g8rc, preferred-register: '' }5772  - { id: 6, class: g8rc, preferred-register: '' }5773  - { id: 7, class: g8rc, preferred-register: '' }5774  - { id: 8, class: gprc, preferred-register: '' }5775  - { id: 9, class: g8rc, preferred-register: '' }5776  - { id: 10, class: g8rc, preferred-register: '' }5777  - { id: 11, class: g8rc, preferred-register: '' }5778liveins:5779  - { reg: '$x3', virtual-reg: '%0' }5780  - { reg: '$f1', virtual-reg: '%1' }5781  - { reg: '$x5', virtual-reg: '%2' }5782frameInfo:5783  isFrameAddressTaken: false5784  isReturnAddressTaken: false5785  hasStackMap:     false5786  hasPatchPoint:   false5787  stackSize:       05788  offsetAdjustment: 05789  maxAlignment:    05790  adjustsStack:    false5791  hasCalls:        false5792  stackProtector:  ''5793  maxCallFrameSize: 42949672955794  hasOpaqueSPAdjustment: false5795  hasVAStart:      false5796  hasMustTailInVarArgFunc: false5797  savePoint:       []5798  restorePoint:    []5799fixedStack:5800stack:5801constants:5802body:             |5803  bb.0.entry:5804    liveins: $x3, $f1, $x55805 5806    %2 = COPY $x55807    %1 = COPY $f15808    %0 = COPY $x35809    %3 = COPY %2.sub_325810    %4 = ADDI %3, 15811    %6 = IMPLICIT_DEF5812    %5 = INSERT_SUBREG %6, killed %4, 15813    %7 = LI8 4005814    STFSX %1, %0, killed %7 :: (store (s32) into %ir.arrayidx, !tbaa !14)5815    ; CHECK: STFS %1, 400, %05816    ; CHECK-LATE: stfs 1, 400(3)5817    %8 = ADDI %3, 25818    %10 = IMPLICIT_DEF5819    %9 = INSERT_SUBREG %10, killed %8, 15820    %11 = LI8 -4015821    STFSX %1, %0, killed %11 :: (store (s32) into %ir.arrayidx3, !tbaa !14)5822    ; CHECK: STFS killed %1, -401, killed %05823    ; CHECK-LATE: stfs 1, -401(3)5824    BLR8 implicit $lr8, implicit $rm5825 5826...5827---5828name:            testSTFSUX5829# CHECK-ALL: name: testSTFSUX5830alignment:       165831exposesReturnsTwice: false5832legalized:       false5833regBankSelected: false5834selected:        false5835tracksRegLiveness: true5836registers:5837  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }5838  - { id: 1, class: f4rc, preferred-register: '' }5839  - { id: 2, class: g8rc, preferred-register: '' }5840  - { id: 3, class: gprc_and_gprc_nor0, preferred-register: '' }5841  - { id: 4, class: gprc, preferred-register: '' }5842  - { id: 5, class: g8rc, preferred-register: '' }5843  - { id: 6, class: g8rc, preferred-register: '' }5844  - { id: 7, class: g8rc, preferred-register: '' }5845  - { id: 8, class: gprc, preferred-register: '' }5846  - { id: 9, class: g8rc, preferred-register: '' }5847  - { id: 10, class: g8rc, preferred-register: '' }5848  - { id: 11, class: g8rc, preferred-register: '' }5849  - { id: 12, class: g8rc_and_g8rc_nox0, preferred-register: '' }5850  - { id: 13, class: g8rc_and_g8rc_nox0, preferred-register: '' }5851liveins:5852  - { reg: '$x3', virtual-reg: '%0' }5853  - { reg: '$f1', virtual-reg: '%1' }5854  - { reg: '$x5', virtual-reg: '%2' }5855frameInfo:5856  isFrameAddressTaken: false5857  isReturnAddressTaken: false5858  hasStackMap:     false5859  hasPatchPoint:   false5860  stackSize:       05861  offsetAdjustment: 05862  maxAlignment:    05863  adjustsStack:    false5864  hasCalls:        false5865  stackProtector:  ''5866  maxCallFrameSize: 42949672955867  hasOpaqueSPAdjustment: false5868  hasVAStart:      false5869  hasMustTailInVarArgFunc: false5870  savePoint:       []5871  restorePoint:    []5872fixedStack:5873stack:5874constants:5875body:             |5876  bb.0.entry:5877    liveins: $x3, $f1, $x55878 5879    %2 = COPY $x55880    %1 = COPY $f15881    %0 = COPY $x35882    %3 = COPY %2.sub_325883    %4 = ADDI %3, 15884    %6 = IMPLICIT_DEF5885    %5 = INSERT_SUBREG %6, killed %4, 15886    %7 = LI8 1115887    %12 = STFSUX %1, %0, killed %7 :: (store (s32) into %ir.arrayidx, !tbaa !14)5888    ; CHECK: STFSU %1, 111, %05889    ; CHECK-LATE: stfsu {{[0-9]+}}, 111({{[0-9]+}})5890    %8 = ADDI %3, 25891    %10 = IMPLICIT_DEF5892    %9 = INSERT_SUBREG %10, killed %8, 15893    %11 = LI8 9875894    %13 = STFSUX %1, %0, killed %11 :: (store (s32) into %ir.arrayidx3, !tbaa !14)5895    ; CHECK: STFSU killed %1, 987, killed %05896    ; CHECK-LATE: stfsu {{[0-9]+}}, 987({{[0-9]+}})5897    BLR8 implicit $lr8, implicit $rm5898 5899...5900---5901name:            testSTFDX5902# CHECK-ALL: name: testSTFDX5903alignment:       165904exposesReturnsTwice: false5905legalized:       false5906regBankSelected: false5907selected:        false5908tracksRegLiveness: true5909registers:5910  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }5911  - { id: 1, class: f8rc, preferred-register: '' }5912  - { id: 2, class: g8rc, preferred-register: '' }5913  - { id: 3, class: gprc_and_gprc_nor0, preferred-register: '' }5914  - { id: 4, class: gprc, preferred-register: '' }5915  - { id: 5, class: g8rc, preferred-register: '' }5916  - { id: 6, class: g8rc, preferred-register: '' }5917  - { id: 7, class: g8rc, preferred-register: '' }5918  - { id: 8, class: gprc, preferred-register: '' }5919  - { id: 9, class: g8rc, preferred-register: '' }5920  - { id: 10, class: g8rc, preferred-register: '' }5921  - { id: 11, class: g8rc, preferred-register: '' }5922liveins:5923  - { reg: '$x3', virtual-reg: '%0' }5924  - { reg: '$f1', virtual-reg: '%1' }5925  - { reg: '$x5', virtual-reg: '%2' }5926frameInfo:5927  isFrameAddressTaken: false5928  isReturnAddressTaken: false5929  hasStackMap:     false5930  hasPatchPoint:   false5931  stackSize:       05932  offsetAdjustment: 05933  maxAlignment:    05934  adjustsStack:    false5935  hasCalls:        false5936  stackProtector:  ''5937  maxCallFrameSize: 42949672955938  hasOpaqueSPAdjustment: false5939  hasVAStart:      false5940  hasMustTailInVarArgFunc: false5941  savePoint:       []5942  restorePoint:    []5943fixedStack:5944stack:5945constants:5946body:             |5947  bb.0.entry:5948    liveins: $x3, $f1, $x55949 5950    %2 = COPY $x55951    %1 = COPY $f15952    %0 = COPY $x35953    %3 = COPY %2.sub_325954    %4 = ADDI %3, 15955    %6 = IMPLICIT_DEF5956    %5 = INSERT_SUBREG %6, killed %4, 15957    %7 = LI8 8765958    STFDX %1, %0, killed %7 :: (store (s64) into %ir.arrayidx, !tbaa !12)5959    ; CHECK: STFD %1, 876, %05960    ; CHECK-LATE: stfd 1, 876(3)5961    %8 = ADDI %3, 25962    %10 = IMPLICIT_DEF5963    %9 = INSERT_SUBREG %10, killed %8, 15964    %11 = LI8 -8735965    STFDX %1, %0, killed %11 :: (store (s64) into %ir.arrayidx3, !tbaa !12)5966    ; CHECK: STFD killed %1, -873, killed %05967    ; CHECK-LATE: stfd 1, -873(3)5968    BLR8 implicit $lr8, implicit $rm5969 5970...5971---5972name:            testSTFDUX5973# CHECK-ALL: name: testSTFDUX5974alignment:       165975exposesReturnsTwice: false5976legalized:       false5977regBankSelected: false5978selected:        false5979tracksRegLiveness: true5980registers:5981  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }5982  - { id: 1, class: f8rc, preferred-register: '' }5983  - { id: 2, class: g8rc, preferred-register: '' }5984  - { id: 3, class: gprc_and_gprc_nor0, preferred-register: '' }5985  - { id: 4, class: gprc, preferred-register: '' }5986  - { id: 5, class: g8rc, preferred-register: '' }5987  - { id: 6, class: g8rc, preferred-register: '' }5988  - { id: 7, class: g8rc, preferred-register: '' }5989  - { id: 8, class: gprc, preferred-register: '' }5990  - { id: 9, class: g8rc, preferred-register: '' }5991  - { id: 10, class: g8rc, preferred-register: '' }5992  - { id: 11, class: g8rc, preferred-register: '' }5993  - { id: 12, class: g8rc_and_g8rc_nox0, preferred-register: '' }5994  - { id: 13, class: g8rc_and_g8rc_nox0, preferred-register: '' }5995liveins:5996  - { reg: '$x3', virtual-reg: '%0' }5997  - { reg: '$f1', virtual-reg: '%1' }5998  - { reg: '$x5', virtual-reg: '%2' }5999frameInfo:6000  isFrameAddressTaken: false6001  isReturnAddressTaken: false6002  hasStackMap:     false6003  hasPatchPoint:   false6004  stackSize:       06005  offsetAdjustment: 06006  maxAlignment:    06007  adjustsStack:    false6008  hasCalls:        false6009  stackProtector:  ''6010  maxCallFrameSize: 42949672956011  hasOpaqueSPAdjustment: false6012  hasVAStart:      false6013  hasMustTailInVarArgFunc: false6014  savePoint:       []6015  restorePoint:    []6016fixedStack:6017stack:6018constants:6019body:             |6020  bb.0.entry:6021    liveins: $x3, $f1, $x56022 6023    %2 = COPY $x56024    %1 = COPY $f16025    %0 = COPY $x36026    %3 = COPY %2.sub_326027    %4 = ADDI %3, 16028    %6 = IMPLICIT_DEF6029    %5 = INSERT_SUBREG %6, killed %4, 16030    %7 = LI8 -90386031    %12 = STFDUX %1, %0, killed %7 :: (store (s64) into %ir.arrayidx, !tbaa !12)6032    ; CHECK: STFDU %1, -9038, %06033    ; CHECK-LATE: stfdu {{[0-9]+}}, -9038({{[0-9]+}})6034    %8 = ADDI %3, 26035    %10 = IMPLICIT_DEF6036    %9 = INSERT_SUBREG %10, killed %8, 16037    %11 = LI8 64776038    %13 = STFDUX %1, %0, killed %11 :: (store (s64) into %ir.arrayidx3, !tbaa !12)6039    ; CHECK: STFDU killed %1, 6477, killed %06040    ; CHECK-LATE: stfdu {{[0-9]+}}, 6477({{[0-9]+}})6041    BLR8 implicit $lr8, implicit $rm6042 6043...6044---6045name:            testSTXSSPX6046# CHECK-ALL: name: testSTXSSPX6047alignment:       166048exposesReturnsTwice: false6049legalized:       false6050regBankSelected: false6051selected:        false6052tracksRegLiveness: true6053registers:6054  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }6055  - { id: 1, class: vssrc, preferred-register: '' }6056  - { id: 2, class: g8rc, preferred-register: '' }6057  - { id: 3, class: g8rc, preferred-register: '' }6058liveins:6059  - { reg: '$x3', virtual-reg: '%0' }6060  - { reg: '$f1', virtual-reg: '%1' }6061  - { reg: '$x5', virtual-reg: '%2' }6062frameInfo:6063  isFrameAddressTaken: false6064  isReturnAddressTaken: false6065  hasStackMap:     false6066  hasPatchPoint:   false6067  stackSize:       06068  offsetAdjustment: 06069  maxAlignment:    06070  adjustsStack:    false6071  hasCalls:        false6072  stackProtector:  ''6073  maxCallFrameSize: 42949672956074  hasOpaqueSPAdjustment: false6075  hasVAStart:      false6076  hasMustTailInVarArgFunc: false6077  savePoint:       []6078  restorePoint:    []6079fixedStack:6080stack:6081constants:6082body:             |6083  bb.0.entry:6084    liveins: $x3, $f1, $x56085 6086    %2 = COPY $x56087    %1 = COPY $f16088    %0 = COPY $x36089    %3 = LI8 4446090    STXSSPX %1, %0, killed %3 :: (store (s32) into %ir.arrayidx, !tbaa !14)6091    ; CHECK: DFSTOREf32 killed %1, 444, killed %06092    ; CHECK-LATE: stfs 1, 444(3)6093    BLR8 implicit $lr8, implicit $rm6094 6095...6096---6097name:            testSTXSDX6098# CHECK-ALL: name: testSTXSDX6099alignment:       166100exposesReturnsTwice: false6101legalized:       false6102regBankSelected: false6103selected:        false6104tracksRegLiveness: true6105registers:6106  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }6107  - { id: 1, class: vsfrc, preferred-register: '' }6108  - { id: 2, class: g8rc, preferred-register: '' }6109  - { id: 3, class: g8rc, preferred-register: '' }6110liveins:6111  - { reg: '$x3', virtual-reg: '%0' }6112  - { reg: '$f1', virtual-reg: '%1' }6113  - { reg: '$x5', virtual-reg: '%2' }6114frameInfo:6115  isFrameAddressTaken: false6116  isReturnAddressTaken: false6117  hasStackMap:     false6118  hasPatchPoint:   false6119  stackSize:       06120  offsetAdjustment: 06121  maxAlignment:    06122  adjustsStack:    false6123  hasCalls:        false6124  stackProtector:  ''6125  maxCallFrameSize: 42949672956126  hasOpaqueSPAdjustment: false6127  hasVAStart:      false6128  hasMustTailInVarArgFunc: false6129  savePoint:       []6130  restorePoint:    []6131fixedStack:6132stack:6133constants:6134body:             |6135  bb.0.entry:6136    liveins: $x3, $f1, $x56137 6138    %2 = COPY $x56139    %1 = COPY $f16140    %0 = COPY $x36141    %3 = LI8 46142    STXSDX %1, %0, killed %3, implicit $rm :: (store (s64) into %ir.arrayidx, !tbaa !12)6143    ; CHECK: DFSTOREf64 killed %1, 4, killed %06144    ; CHECK-LATE: stfd 1, 4(3)6145    BLR8 implicit $lr8, implicit $rm6146 6147...6148---6149name:            testSTXVX6150# CHECK-ALL: name: testSTXVX6151alignment:       166152exposesReturnsTwice: false6153legalized:       false6154regBankSelected: false6155selected:        false6156tracksRegLiveness: true6157registers:6158  - { id: 0, class: g8rc_and_g8rc_nox0, preferred-register: '' }6159  - { id: 1, class: vrrc, preferred-register: '' }6160  - { id: 2, class: g8rc, preferred-register: '' }6161  - { id: 3, class: g8rc, preferred-register: '' }6162liveins:6163  - { reg: '$x3', virtual-reg: '%0' }6164  - { reg: '$v2', virtual-reg: '%1' }6165  - { reg: '$x7', virtual-reg: '%2' }6166frameInfo:6167  isFrameAddressTaken: false6168  isReturnAddressTaken: false6169  hasStackMap:     false6170  hasPatchPoint:   false6171  stackSize:       06172  offsetAdjustment: 06173  maxAlignment:    06174  adjustsStack:    false6175  hasCalls:        false6176  stackProtector:  ''6177  maxCallFrameSize: 42949672956178  hasOpaqueSPAdjustment: false6179  hasVAStart:      false6180  hasMustTailInVarArgFunc: false6181  savePoint:       []6182  restorePoint:    []6183fixedStack:6184stack:6185constants:6186body:             |6187  bb.0.entry:6188    liveins: $x3, $v2, $x76189 6190    %2 = COPY $x76191    %1 = COPY $v26192    %0 = LI8 166193    %3 = RLDICR %2, 4, 596194    STXVX %1, %0, killed %3 :: (store (s128) into %ir.arrayidx, !tbaa !3)6195    ; CHECK: STXV killed %1, 16, killed %36196    ; CHECK-LATE: stxv 34, 16(4)6197    BLR8 implicit $lr8, implicit $rm6198 6199...6200---6201name:            testSUBFC6202# CHECK-ALL: name: testSUBFC6203alignment:       166204exposesReturnsTwice: false6205legalized:       false6206regBankSelected: false6207selected:        false6208tracksRegLiveness: true6209registers:6210  - { id: 0, class: gprc, preferred-register: '' }6211  - { id: 1, class: g8rc, preferred-register: '' }6212  - { id: 2, class: g8rc, preferred-register: '' }6213  - { id: 3, class: g8rc, preferred-register: '' }6214  - { id: 4, class: gprc, preferred-register: '' }6215  - { id: 5, class: gprc, preferred-register: '' }6216  - { id: 6, class: gprc, preferred-register: '' }6217  - { id: 7, class: gprc, preferred-register: '' }6218  - { id: 8, class: gprc, preferred-register: '' }6219liveins:6220  - { reg: '$x3', virtual-reg: '%0' }6221  - { reg: '$x4', virtual-reg: '%1' }6222  - { reg: '$x5', virtual-reg: '%2' }6223  - { reg: '$x6', virtual-reg: '%3' }6224frameInfo:6225  isFrameAddressTaken: false6226  isReturnAddressTaken: false6227  hasStackMap:     false6228  hasPatchPoint:   false6229  stackSize:       06230  offsetAdjustment: 06231  maxAlignment:    06232  adjustsStack:    false6233  hasCalls:        false6234  stackProtector:  ''6235  maxCallFrameSize: 42949672956236  hasOpaqueSPAdjustment: false6237  hasVAStart:      false6238  hasMustTailInVarArgFunc: false6239  savePoint:       []6240  restorePoint:    []6241fixedStack:6242stack:6243constants:6244body:             |6245  bb.0.entry:6246    liveins: $x3, $x4, $x5, $x66247 6248    %3 = COPY $x66249    %2 = COPY $x56250    %1 = COPY $x46251    %6 = COPY %3.sub_326252    %7 = COPY %2.sub_326253    %8 = COPY %1.sub_326254    %0 = LI 556255    %4 = SUBFC %7, %0, implicit-def $carry6256    ; CHECK: SUBFIC killed %7, 556257    ; CHECK-LATE: subfic 3, 5, 556258    %5 = SUBFE %6, %8, implicit-def dead $carry, implicit $carry6259    $x3 = EXTSW_32_64 %46260    $x4 = EXTSW_32_64 %56261    BLR8 implicit $lr8, implicit $rm, implicit $x3, implicit $x46262 6263...6264---6265name:            testSUBFC86266# CHECK-ALL: name: testSUBFC86267alignment:       166268exposesReturnsTwice: false6269legalized:       false6270regBankSelected: false6271selected:        false6272tracksRegLiveness: true6273registers:6274  - { id: 0, class: g8rc, preferred-register: '' }6275  - { id: 1, class: g8rc, preferred-register: '' }6276  - { id: 2, class: g8rc, preferred-register: '' }6277  - { id: 3, class: g8rc, preferred-register: '' }6278  - { id: 4, class: g8rc, preferred-register: '' }6279  - { id: 5, class: g8rc, preferred-register: '' }6280liveins:6281  - { reg: '$x3', virtual-reg: '%0' }6282  - { reg: '$x4', virtual-reg: '%1' }6283  - { reg: '$x5', virtual-reg: '%2' }6284  - { reg: '$x6', virtual-reg: '%3' }6285frameInfo:6286  isFrameAddressTaken: false6287  isReturnAddressTaken: false6288  hasStackMap:     false6289  hasPatchPoint:   false6290  stackSize:       06291  offsetAdjustment: 06292  maxAlignment:    06293  adjustsStack:    false6294  hasCalls:        false6295  stackProtector:  ''6296  maxCallFrameSize: 42949672956297  hasOpaqueSPAdjustment: false6298  hasVAStart:      false6299  hasMustTailInVarArgFunc: false6300  savePoint:       []6301  restorePoint:    []6302fixedStack:6303stack:6304constants:6305body:             |6306  bb.0.entry:6307    liveins: $x3, $x4, $x5, $x66308 6309    %3 = COPY $x66310    %2 = COPY $x56311    %1 = COPY $x46312    %0 = LI8 76356313    %4 = SUBFC8 %2, %0, implicit-def $carry6314    ; CHECK: SUBFIC8 killed %2, 76356315    ; CHECK-LATE: subfic 3, 5, 76356316    %5 = SUBFE8 %3, %1, implicit-def dead $carry, implicit $carry6317    $x3 = COPY %46318    $x4 = COPY %56319    BLR8 implicit $lr8, implicit $rm, implicit $x3, implicit $x46320 6321...6322---6323name:            testXOR6324# CHECK-ALL: name: testXOR6325alignment:       166326exposesReturnsTwice: false6327legalized:       false6328regBankSelected: false6329selected:        false6330tracksRegLiveness: true6331registers:6332  - { id: 0, class: g8rc, preferred-register: '' }6333  - { id: 1, class: gprc, preferred-register: '' }6334  - { id: 2, class: gprc, preferred-register: '' }6335  - { id: 3, class: gprc, preferred-register: '' }6336liveins:6337  - { reg: '$x3', virtual-reg: '%0' }6338  - { reg: '$x4', virtual-reg: '%1' }6339frameInfo:6340  isFrameAddressTaken: false6341  isReturnAddressTaken: false6342  hasStackMap:     false6343  hasPatchPoint:   false6344  stackSize:       06345  offsetAdjustment: 06346  maxAlignment:    06347  adjustsStack:    false6348  hasCalls:        false6349  stackProtector:  ''6350  maxCallFrameSize: 42949672956351  hasOpaqueSPAdjustment: false6352  hasVAStart:      false6353  hasMustTailInVarArgFunc: false6354  savePoint:       []6355  restorePoint:    []6356fixedStack:6357stack:6358constants:6359body:             |6360  bb.0.entry:6361    liveins: $x3, $x46362 6363    %1 = LI 101016364    %0 = COPY $x36365    %3 = COPY %0.sub_326366    %2 = XOR %1, %36367    ; CHECK: XORI killed %3, 101016368    ; CHECK-LATE: 3, 3, 101016369    $x3 = EXTSW_32_64 %26370    BLR8 implicit $lr8, implicit $rm, implicit $x36371 6372...6373---6374name:            testXOR86375# CHECK-ALL: name: testXOR86376alignment:       166377exposesReturnsTwice: false6378legalized:       false6379regBankSelected: false6380selected:        false6381tracksRegLiveness: true6382registers:6383  - { id: 0, class: g8rc, preferred-register: '' }6384  - { id: 1, class: g8rc, preferred-register: '' }6385  - { id: 2, class: g8rc, preferred-register: '' }6386liveins:6387  - { reg: '$x3', virtual-reg: '%0' }6388  - { reg: '$x4', virtual-reg: '%1' }6389frameInfo:6390  isFrameAddressTaken: false6391  isReturnAddressTaken: false6392  hasStackMap:     false6393  hasPatchPoint:   false6394  stackSize:       06395  offsetAdjustment: 06396  maxAlignment:    06397  adjustsStack:    false6398  hasCalls:        false6399  stackProtector:  ''6400  maxCallFrameSize: 42949672956401  hasOpaqueSPAdjustment: false6402  hasVAStart:      false6403  hasMustTailInVarArgFunc: false6404  savePoint:       []6405  restorePoint:    []6406fixedStack:6407stack:6408constants:6409body:             |6410  bb.0.entry:6411    liveins: $x3, $x46412 6413    %1 = COPY $x46414    %0 = LI8 55356415    %2 = XOR8 %1, %06416    ; CHECK: XORI8 killed %1, 55356417    ; CHECK-LATE: xori 3, 4, 55356418    $x3 = COPY %26419    BLR8 implicit $lr8, implicit $rm, implicit $x36420 6421...6422---6423name:            testXORI6424# CHECK-ALL: name: testXORI6425alignment:       166426exposesReturnsTwice: false6427legalized:       false6428regBankSelected: false6429selected:        false6430tracksRegLiveness: true6431registers:6432  - { id: 0, class: gprc, preferred-register: '' }6433  - { id: 1, class: gprc, preferred-register: '' }6434liveins:6435  - { reg: '$x3', virtual-reg: '%0' }6436frameInfo:6437  isFrameAddressTaken: false6438  isReturnAddressTaken: false6439  hasStackMap:     false6440  hasPatchPoint:   false6441  stackSize:       06442  offsetAdjustment: 06443  maxAlignment:    06444  adjustsStack:    false6445  hasCalls:        false6446  stackProtector:  ''6447  maxCallFrameSize: 42949672956448  hasOpaqueSPAdjustment: false6449  hasVAStart:      false6450  hasMustTailInVarArgFunc: false6451  savePoint:       []6452  restorePoint:    []6453fixedStack:6454stack:6455constants:6456body:             |6457  bb.0.entry:6458    liveins: $x36459 6460    %0 = LI 8716461    %1 = XORI %0, 176462    ; CHECK: LI8 8866463    ; CHECK-LATE: li 3, 8866464    $x3 = EXTSW_32_64 %16465    BLR8 implicit $lr8, implicit $rm, implicit $x36466 6467...6468---6469name:            testXOR8I6470# CHECK-ALL: name: testXOR8I6471alignment:       166472exposesReturnsTwice: false6473legalized:       false6474regBankSelected: false6475selected:        false6476tracksRegLiveness: true6477registers:6478  - { id: 0, class: g8rc, preferred-register: '' }6479  - { id: 1, class: g8rc, preferred-register: '' }6480liveins:6481  - { reg: '$x3', virtual-reg: '%0' }6482frameInfo:6483  isFrameAddressTaken: false6484  isReturnAddressTaken: false6485  hasStackMap:     false6486  hasPatchPoint:   false6487  stackSize:       06488  offsetAdjustment: 06489  maxAlignment:    06490  adjustsStack:    false6491  hasCalls:        false6492  stackProtector:  ''6493  maxCallFrameSize: 42949672956494  hasOpaqueSPAdjustment: false6495  hasVAStart:      false6496  hasMustTailInVarArgFunc: false6497  savePoint:       []6498  restorePoint:    []6499fixedStack:6500stack:6501constants:6502body:             |6503  bb.0.entry:6504    liveins: $x36505 6506    %0 = LI8 4536507    %1 = XORI8 %0, 176508    ; CHECK: LI8 4686509    ; CHECK-LATE: li 3, 4686510    $x3 = COPY %16511    BLR8 implicit $lr8, implicit $rm, implicit $x36512 6513...6514