brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.5 KiB · 6b14ebf Raw
165 lines · plain
1; RUN: llc -verify-machineinstrs < %s -mtriple=armv4t   | FileCheck %s -check-prefix=CHECK-v4A322; RUN: llc -verify-machineinstrs < %s -mtriple=armv7a   | FileCheck %s -check-prefix=CHECK-v7A323; RUN: llc -verify-machineinstrs < %s -mtriple=thumbv7a | FileCheck %s -check-prefix=CHECK-THUMB24; FIXME: There are no tests for Thumb1 since dynamic stack alignment is not supported for5; Thumb1.6 7define i32 @f_bic_can_be_used_align() nounwind {8entry:9; CHECK-LABEL: f_bic_can_be_used_align:10; CHECK-v7A32: bfc        sp, #0, #811; CHECK-v4A32: bic        sp, sp, #25512; CHECK-THUMB2:	mov	r4, sp13; CHECK-THUMB2-NEXT: bfc	r4, #0, #814; CHECK-THUMB2-NEXT: mov	sp, r415  %x = alloca i32, align 25616  store volatile i32 0, ptr %x, align 25617  ret i32 018}19 20define i32 @f_too_large_for_bic_align() nounwind {21entry:22; CHECK-LABEL: f_too_large_for_bic_align:23; CHECK-v7A32: bfc sp, #0, #924; CHECK-v4A32: lsr sp, sp, #925; CHECK-v4A32: lsl sp, sp, #926; CHECK-THUMB2:	mov	r4, sp27; CHECK-THUMB2-NEXT:	bfc	r4, #0, #928; CHECK-THUMB2-NEXT:	mov	sp, r429  %x = alloca i32, align 51230  store volatile i32 0, ptr %x, align 51231  ret i32 032}33 34define ptr @f_alignedDPRCS2Spills(ptr %d) #0 {35entry:36; CHECK-LABEL: f_too_large_for_bic_align:37; CHECK-v7A32: bfc sp, #0, #1238; CHECK-v4A32: lsr sp, sp, #1239; CHECK-v4A32: lsl sp, sp, #1240; CHECK-THUMB2:      bfc	r4, #0, #1241; CHECK-THUMB2-NEXT: mov	sp, r442  %a = alloca i8, align 409643  %0 = load double, ptr %d, align 444  %arrayidx1 = getelementptr inbounds double, ptr %d, i32 145  %1 = load double, ptr %arrayidx1, align 446  %arrayidx2 = getelementptr inbounds double, ptr %d, i32 247  %2 = load double, ptr %arrayidx2, align 448  %arrayidx3 = getelementptr inbounds double, ptr %d, i32 349  %3 = load double, ptr %arrayidx3, align 450  %arrayidx4 = getelementptr inbounds double, ptr %d, i32 451  %4 = load double, ptr %arrayidx4, align 452  %arrayidx5 = getelementptr inbounds double, ptr %d, i32 553  %5 = load double, ptr %arrayidx5, align 454  %arrayidx6 = getelementptr inbounds double, ptr %d, i32 655  %6 = load double, ptr %arrayidx6, align 456  %arrayidx7 = getelementptr inbounds double, ptr %d, i32 757  %7 = load double, ptr %arrayidx7, align 458  %arrayidx8 = getelementptr inbounds double, ptr %d, i32 859  %8 = load double, ptr %arrayidx8, align 460  %arrayidx9 = getelementptr inbounds double, ptr %d, i32 961  %9 = load double, ptr %arrayidx9, align 462  %arrayidx10 = getelementptr inbounds double, ptr %d, i32 1063  %10 = load double, ptr %arrayidx10, align 464  %arrayidx11 = getelementptr inbounds double, ptr %d, i32 1165  %11 = load double, ptr %arrayidx11, align 466  %arrayidx12 = getelementptr inbounds double, ptr %d, i32 1267  %12 = load double, ptr %arrayidx12, align 468  %arrayidx13 = getelementptr inbounds double, ptr %d, i32 1369  %13 = load double, ptr %arrayidx13, align 470  %arrayidx14 = getelementptr inbounds double, ptr %d, i32 1471  %14 = load double, ptr %arrayidx14, align 472  %arrayidx15 = getelementptr inbounds double, ptr %d, i32 1573  %15 = load double, ptr %arrayidx15, align 474  %arrayidx16 = getelementptr inbounds double, ptr %d, i32 1675  %16 = load double, ptr %arrayidx16, align 476  %arrayidx17 = getelementptr inbounds double, ptr %d, i32 1777  %17 = load double, ptr %arrayidx17, align 478  %arrayidx18 = getelementptr inbounds double, ptr %d, i32 1879  %18 = load double, ptr %arrayidx18, align 480  %arrayidx19 = getelementptr inbounds double, ptr %d, i32 1981  %19 = load double, ptr %arrayidx19, align 482  %arrayidx20 = getelementptr inbounds double, ptr %d, i32 2083  %20 = load double, ptr %arrayidx20, align 484  %arrayidx21 = getelementptr inbounds double, ptr %d, i32 2185  %21 = load double, ptr %arrayidx21, align 486  %arrayidx22 = getelementptr inbounds double, ptr %d, i32 2287  %22 = load double, ptr %arrayidx22, align 488  %arrayidx23 = getelementptr inbounds double, ptr %d, i32 2389  %23 = load double, ptr %arrayidx23, align 490  %arrayidx24 = getelementptr inbounds double, ptr %d, i32 2491  %24 = load double, ptr %arrayidx24, align 492  %arrayidx25 = getelementptr inbounds double, ptr %d, i32 2593  %25 = load double, ptr %arrayidx25, align 494  %arrayidx26 = getelementptr inbounds double, ptr %d, i32 2695  %26 = load double, ptr %arrayidx26, align 496  %arrayidx27 = getelementptr inbounds double, ptr %d, i32 2797  %27 = load double, ptr %arrayidx27, align 498  %arrayidx28 = getelementptr inbounds double, ptr %d, i32 2899  %28 = load double, ptr %arrayidx28, align 4100  %arrayidx29 = getelementptr inbounds double, ptr %d, i32 29101  %29 = load double, ptr %arrayidx29, align 4102  %div = fdiv double %29, %28103  %div30 = fdiv double %div, %27104  %div31 = fdiv double %div30, %26105  %div32 = fdiv double %div31, %25106  %div33 = fdiv double %div32, %24107  %div34 = fdiv double %div33, %23108  %div35 = fdiv double %div34, %22109  %div36 = fdiv double %div35, %21110  %div37 = fdiv double %div36, %20111  %div38 = fdiv double %div37, %19112  %div39 = fdiv double %div38, %18113  %div40 = fdiv double %div39, %17114  %div41 = fdiv double %div40, %16115  %div42 = fdiv double %div41, %15116  %div43 = fdiv double %div42, %14117  %div44 = fdiv double %div43, %13118  %div45 = fdiv double %div44, %12119  %div46 = fdiv double %div45, %11120  %div47 = fdiv double %div46, %10121  %div48 = fdiv double %div47, %9122  %div49 = fdiv double %div48, %8123  %div50 = fdiv double %div49, %7124  %div51 = fdiv double %div50, %6125  %div52 = fdiv double %div51, %5126  %div53 = fdiv double %div52, %4127  %div54 = fdiv double %div53, %3128  %div55 = fdiv double %div54, %2129  %div56 = fdiv double %div55, %1130  %div57 = fdiv double %div56, %0131  %div58 = fdiv double %0, %1132  %div59 = fdiv double %div58, %2133  %div60 = fdiv double %div59, %3134  %div61 = fdiv double %div60, %4135  %div62 = fdiv double %div61, %5136  %div63 = fdiv double %div62, %6137  %div64 = fdiv double %div63, %7138  %div65 = fdiv double %div64, %8139  %div66 = fdiv double %div65, %9140  %div67 = fdiv double %div66, %10141  %div68 = fdiv double %div67, %11142  %div69 = fdiv double %div68, %12143  %div70 = fdiv double %div69, %13144  %div71 = fdiv double %div70, %14145  %div72 = fdiv double %div71, %15146  %div73 = fdiv double %div72, %16147  %div74 = fdiv double %div73, %17148  %div75 = fdiv double %div74, %18149  %div76 = fdiv double %div75, %19150  %div77 = fdiv double %div76, %20151  %div78 = fdiv double %div77, %21152  %div79 = fdiv double %div78, %22153  %div80 = fdiv double %div79, %23154  %div81 = fdiv double %div80, %24155  %div82 = fdiv double %div81, %25156  %div83 = fdiv double %div82, %26157  %div84 = fdiv double %div83, %27158  %div85 = fdiv double %div84, %28159  %div86 = fdiv double %div85, %29160  %mul = fmul double %div57, %div86161  %conv = fptosi double %mul to i32162  %add.ptr = getelementptr inbounds i8, ptr %a, i32 %conv163  ret ptr %add.ptr164}165