brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.9 KiB · fe48dba Raw
73 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=aarch64-linux-gnu -mcpu=neoverse-v2 -O3 < %s | FileCheck %s3 4define i32 @test_const(ptr %in1, ptr %in2, ptr %out, i32 %n, ptr %tbl) {5; CHECK-LABEL: test_const:6; CHECK:       // %bb.0: // %entry7; CHECK-NEXT:    cmp w3, #18; CHECK-NEXT:    b.lt .LBB0_39; CHECK-NEXT:  // %bb.1: // %for.body.preheader10; CHECK-NEXT:    mov w9, #1267 // =0x4f311; CHECK-NEXT:    fmov s1, #1.0000000012; CHECK-NEXT:    fmov d2, #5.0000000013; CHECK-NEXT:    mov w8, w314; CHECK-NEXT:    movk w9, #16309, lsl #1615; CHECK-NEXT:    fmov s0, w916; CHECK-NEXT:    mov w9, #16 // =0x1017; CHECK-NEXT:    .p2align 5, , 1618; CHECK-NEXT:  .LBB0_2: // %for.body19; CHECK-NEXT:    // =>This Inner Loop Header: Depth=120; CHECK-NEXT:    ldr s4, [x1], #421; CHECK-NEXT:    ldr w10, [x0], #422; CHECK-NEXT:    add w10, w10, #1023; CHECK-NEXT:    scvtf d3, w1024; CHECK-NEXT:    fmadd s4, s4, s0, s125; CHECK-NEXT:    fabs s4, s426; CHECK-NEXT:    fcvt d4, s427; CHECK-NEXT:    fdiv d3, d3, d428; CHECK-NEXT:    fcmp d3, d229; CHECK-NEXT:    csel x10, x9, xzr, lt30; CHECK-NEXT:    subs x8, x8, #131; CHECK-NEXT:    ldr s3, [x4, x10]32; CHECK-NEXT:    fcvtzs s3, s333; CHECK-NEXT:    st1 { v3.s }[0], [x2], #434; CHECK-NEXT:    b.ne .LBB0_235; CHECK-NEXT:  .LBB0_3: // %for.cond.cleanup36; CHECK-NEXT:    mov w0, wzr37; CHECK-NEXT:    ret38entry:39  %cmp15 = icmp sgt i32 %n, 040  br i1 %cmp15, label %for.body.preheader, label %for.cond.cleanup41 42for.body.preheader:                               ; preds = %entry43  %wide.trip.count = zext nneg i32 %n to i6444  br label %for.body45 46for.cond.cleanup:                                 ; preds = %for.body, %entry47  ret i32 048 49for.body:                                         ; preds = %for.body.preheader, %for.body50  %indvars.iv = phi i64 [ 0, %for.body.preheader ], [ %indvars.iv.next, %for.body ]51  %arrayidx = getelementptr inbounds i32, ptr %in1, i64 %indvars.iv52  %0 = load i32, ptr %arrayidx, align 453  %add = add nsw i32 %0, 1054  %conv = sitofp i32 %add to double55  %arrayidx2 = getelementptr inbounds float, ptr %in2, i64 %indvars.iv56  %1 = load float, ptr %arrayidx2, align 457  %mul = fmul fast float %1, 0x3FF6A09E6000000058  %add3 = fadd fast float %mul, 1.000000e+0059  %2 = tail call fast float @llvm.fabs.f32(float %add3)60  %3 = fpext float %2 to double61  %div = fdiv fast double %conv, %362  %cmp5 = fcmp fast olt double %div, 5.000000e+0063  %idxprom6 = select i1 %cmp5, i64 4, i64 064  %arrayidx7 = getelementptr inbounds float, ptr %tbl, i64 %idxprom665  %4 = load float, ptr %arrayidx7, align 466  %conv8 = fptosi float %4 to i3267  %arrayidx10 = getelementptr inbounds i32, ptr %out, i64 %indvars.iv68  store i32 %conv8, ptr %arrayidx10, align 469  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 170  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count71  br i1 %exitcond.not, label %for.cond.cleanup, label %for.body72}73