brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.9 KiB · 8a6a303 Raw
164 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=s390x-ibm-linux | FileCheck %s3 4%struct.anon.0.1.2.3.8.77 = type { [3 x i8], i8, [3 x i8] }5 6@e = external dso_local local_unnamed_addr global i32, align 47@f = external dso_local local_unnamed_addr global %struct.anon.0.1.2.3.8.77, align 48@g = external dso_local local_unnamed_addr global i8, align 29 10; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)11declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #012 13define dso_local void @m() local_unnamed_addr #1 {14; CHECK-LABEL: m:15; CHECK:       # %bb.0: # %entry16; CHECK-NEXT:    stmg %r13, %r15, 104(%r15)17; CHECK-NEXT:    aghi %r15, -16818; CHECK-NEXT:    lhrl %r1, f+419; CHECK-NEXT:    sll %r1, 820; CHECK-NEXT:    larl %r2, f21; CHECK-NEXT:    ic %r1, 6(%r2)22; CHECK-NEXT:    larl %r2, e23; CHECK-NEXT:    lb %r0, 3(%r2)24; CHECK-NEXT:    vlvgp %v0, %r0, %r125; CHECK-NEXT:    vlvgp %v1, %r1, %r026; CHECK-NEXT:    vlvgf %v1, %r1, 027; CHECK-NEXT:    vlvgf %v1, %r1, 228; CHECK-NEXT:    vlvgp %v2, %r1, %r129; CHECK-NEXT:    # kill: def $r1l killed $r1l killed $r1d30; CHECK-NEXT:    nilh %r1, 25531; CHECK-NEXT:    chi %r1, 12832; CHECK-NEXT:    ipm %r133; CHECK-NEXT:    risbg %r1, %r1, 63, 191, 3634; CHECK-NEXT:    vlvgf %v0, %r0, 035; CHECK-NEXT:    vlvgf %v0, %r0, 236; CHECK-NEXT:    vgbm %v3, 3058337; CHECK-NEXT:    vn %v0, %v0, %v338; CHECK-NEXT:    vn %v1, %v1, %v339; CHECK-NEXT:    vrepf %v2, %v2, 140; CHECK-NEXT:    vn %v2, %v2, %v341; CHECK-NEXT:    vrepif %v3, 12742; CHECK-NEXT:    vchlf %v1, %v1, %v343; CHECK-NEXT:    vlgvf %r13, %v1, 044; CHECK-NEXT:    vchlf %v2, %v2, %v345; CHECK-NEXT:    vlgvf %r3, %v2, 146; CHECK-NEXT:    nilf %r3, 147; CHECK-NEXT:    vlgvf %r4, %v2, 048; CHECK-NEXT:    risbg %r2, %r4, 48, 176, 1549; CHECK-NEXT:    rosbg %r2, %r3, 32, 49, 1450; CHECK-NEXT:    vlgvf %r5, %v2, 251; CHECK-NEXT:    nilf %r5, 152; CHECK-NEXT:    rosbg %r2, %r5, 32, 50, 1353; CHECK-NEXT:    vlgvf %r14, %v2, 354; CHECK-NEXT:    nilf %r14, 155; CHECK-NEXT:    rosbg %r2, %r14, 32, 51, 1256; CHECK-NEXT:    rosbg %r2, %r13, 52, 52, 1157; CHECK-NEXT:    vlgvf %r13, %v1, 158; CHECK-NEXT:    rosbg %r2, %r13, 53, 53, 1059; CHECK-NEXT:    vlgvf %r13, %v1, 260; CHECK-NEXT:    rosbg %r2, %r13, 54, 54, 961; CHECK-NEXT:    vlgvf %r13, %v1, 362; CHECK-NEXT:    rosbg %r2, %r13, 55, 55, 863; CHECK-NEXT:    vchlf %v0, %v0, %v364; CHECK-NEXT:    vlgvf %r13, %v0, 065; CHECK-NEXT:    rosbg %r2, %r13, 56, 56, 766; CHECK-NEXT:    vlgvf %r13, %v0, 167; CHECK-NEXT:    rosbg %r2, %r13, 57, 57, 668; CHECK-NEXT:    vlgvf %r13, %v0, 269; CHECK-NEXT:    rosbg %r2, %r13, 58, 58, 570; CHECK-NEXT:    vlgvf %r13, %v0, 371; CHECK-NEXT:    rosbg %r2, %r13, 59, 59, 472; CHECK-NEXT:    nilf %r4, 173; CHECK-NEXT:    rosbg %r2, %r4, 32, 60, 374; CHECK-NEXT:    rosbg %r2, %r3, 32, 61, 275; CHECK-NEXT:    rosbg %r2, %r5, 32, 62, 176; CHECK-NEXT:    or %r2, %r1477; CHECK-NEXT:    vlgvb %r4, %v0, 178; CHECK-NEXT:    vlgvb %r3, %v0, 079; CHECK-NEXT:    risbg %r3, %r3, 48, 176, 1580; CHECK-NEXT:    rosbg %r3, %r4, 49, 49, 1481; CHECK-NEXT:    vlgvb %r4, %v0, 282; CHECK-NEXT:    rosbg %r3, %r4, 50, 50, 1383; CHECK-NEXT:    vlgvb %r4, %v0, 384; CHECK-NEXT:    rosbg %r3, %r4, 51, 51, 1285; CHECK-NEXT:    vlgvb %r4, %v0, 486; CHECK-NEXT:    rosbg %r3, %r4, 52, 52, 1187; CHECK-NEXT:    vlgvb %r4, %v0, 588; CHECK-NEXT:    rosbg %r3, %r4, 53, 53, 1089; CHECK-NEXT:    vlgvb %r4, %v0, 690; CHECK-NEXT:    rosbg %r3, %r4, 54, 54, 991; CHECK-NEXT:    vlgvb %r4, %v0, 792; CHECK-NEXT:    rosbg %r3, %r4, 55, 55, 893; CHECK-NEXT:    vlgvb %r4, %v0, 894; CHECK-NEXT:    rosbg %r3, %r4, 56, 56, 795; CHECK-NEXT:    vlgvb %r4, %v0, 996; CHECK-NEXT:    rosbg %r3, %r4, 57, 57, 697; CHECK-NEXT:    vlgvb %r4, %v0, 1098; CHECK-NEXT:    rosbg %r3, %r4, 58, 58, 599; CHECK-NEXT:    vlgvb %r4, %v0, 11100; CHECK-NEXT:    rosbg %r3, %r4, 59, 59, 4101; CHECK-NEXT:    vlgvb %r4, %v0, 12102; CHECK-NEXT:    rosbg %r3, %r4, 60, 60, 3103; CHECK-NEXT:    vlgvb %r4, %v0, 13104; CHECK-NEXT:    rosbg %r3, %r4, 61, 61, 2105; CHECK-NEXT:    vlgvb %r4, %v0, 14106; CHECK-NEXT:    rosbg %r3, %r4, 62, 62, 1107; CHECK-NEXT:    vlgvb %r4, %v0, 15108; CHECK-NEXT:    rosbg %r3, %r4, 63, 63, 0109; CHECK-NEXT:    xilf %r3, 4294967295110; CHECK-NEXT:    or %r3, %r2111; CHECK-NEXT:    tmll %r3, 65535112; CHECK-NEXT:    ipm %r2113; CHECK-NEXT:    afi %r2, -268435456114; CHECK-NEXT:    srl %r2, 31115; CHECK-NEXT:    nr %r2, %r1116; CHECK-NEXT:    nr %r2, %r0117; CHECK-NEXT:    larl %r1, g118; CHECK-NEXT:    stc %r2, 0(%r1)119; CHECK-NEXT:    lmg %r13, %r15, 272(%r15)120; CHECK-NEXT:    br %r14121entry:122  %n = alloca i32, align 4123  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %n) #2124  %e.promoted9.i = load i32, ptr @e, align 4125  %bf.load.i = load i24, ptr getelementptr inbounds (%struct.anon.0.1.2.3.8.77, ptr @f, i64 0, i32 2), align 4126  %tobool.not.1.i = icmp ult i24 %bf.load.i, 128127  %bf.load.2.i = load i24, ptr getelementptr inbounds (%struct.anon.0.1.2.3.8.77, ptr @f, i64 0, i32 2), align 4128  %bf.load.2.i.fr = freeze i24 %bf.load.2.i129  %tobool.not.2.i = icmp ult i24 %bf.load.2.i.fr, 128130  %bf.load.427.i = load i24, ptr getelementptr inbounds (%struct.anon.0.1.2.3.8.77, ptr @f, i64 0, i32 2), align 4131  %bf.load.3.5.i = load i24, ptr getelementptr inbounds (%struct.anon.0.1.2.3.8.77, ptr @f, i64 0, i32 2), align 4132  %bf.load.2.6.i = load i24, ptr getelementptr inbounds (%struct.anon.0.1.2.3.8.77, ptr @f, i64 0, i32 2), align 4133  %0 = insertelement <16 x i24> poison, i24 %bf.load.2.6.i, i64 0134  %1 = insertelement <16 x i24> %0, i24 %bf.load.2.6.i, i64 1135  %2 = insertelement <16 x i24> %1, i24 %bf.load.3.5.i, i64 3136  %3 = insertelement <16 x i24> %2, i24 %bf.load.3.5.i, i64 5137  %4 = insertelement <16 x i24> %3, i24 poison, i64 7138  %5 = insertelement <16 x i24> %4, i24 poison, i64 9139  %6 = insertelement <16 x i24> %5, i24 %bf.load.427.i, i64 11140  %7 = insertelement <16 x i24> %6, i24 %bf.load.427.i, i64 13141  %8 = insertelement <16 x i24> %7, i24 %bf.load.2.i.fr, i64 15142  %9 = shufflevector <16 x i24> %8, <16 x i24> poison, <16 x i32> <i32 0, i32 1, i32 0, i32 3, i32 3, i32 5, i32 5, i32 7, i32 7, i32 9, i32 9, i32 11, i32 11, i32 13, i32 13, i32 15>143  %.fr = freeze <16 x i24> %9144  %10 = icmp ugt <16 x i24> %.fr, <i24 127, i24 127, i24 127, i24 127, i24 127, i24 127, i24 127, i24 127, i24 127, i24 127, i24 127, i24 127, i24 127, i24 127, i24 127, i24 127>145  %11 = bitcast <16 x i1> %10 to i16146  %12 = icmp eq i16 %11, 0147  %13 = freeze <16 x i1> poison148  %14 = bitcast <16 x i1> %13 to i16149  %15 = icmp eq i16 %14, -1150  %op.rdx = and i1 %12, %15151  %op.rdx1 = and i1 %op.rdx, %tobool.not.2.i152  %op.rdx2 = select i1 %op.rdx1, i1 %tobool.not.1.i, i1 false153  %16 = trunc i32 %e.promoted9.i to i8154  %17 = and i8 %16, 1155  %18 = select i1 false, i8 0, i8 %17156  %conv14.i = select i1 %op.rdx2, i8 %18, i8 0157  store i8 %conv14.i, ptr @g, align 2158  ret void159}160 161attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }162attributes #1 = { nounwind "target-features"="+transactional-execution,+vector" }163attributes #2 = { nounwind }164