brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.1 KiB · 279373a Raw
136 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=i386-unknown-openbsd6.2 | FileCheck %s3 4%struct.DateTime = type { i64, i32, i32, i32, i32, i32, double, i8 }5 6define void @computeJD(ptr) nounwind {7; CHECK-LABEL: computeJD:8; CHECK:       # %bb.0:9; CHECK-NEXT:    pushl %ebp10; CHECK-NEXT:    movl %esp, %ebp11; CHECK-NEXT:    pushl %ebx12; CHECK-NEXT:    pushl %edi13; CHECK-NEXT:    pushl %esi14; CHECK-NEXT:    andl $-8, %esp15; CHECK-NEXT:    subl $40, %esp16; CHECK-NEXT:    movl 8(%ebp), %ebx17; CHECK-NEXT:    movl 8(%ebx), %esi18; CHECK-NEXT:    xorl %eax, %eax19; CHECK-NEXT:    cmpl $3, 12(%ebx)20; CHECK-NEXT:    setl %al21; CHECK-NEXT:    subl %eax, %esi22; CHECK-NEXT:    movl $-1374389535, %ecx # imm = 0xAE147AE123; CHECK-NEXT:    movl %esi, %eax24; CHECK-NEXT:    imull %ecx25; CHECK-NEXT:    movl %edx, %ecx26; CHECK-NEXT:    movl %edx, %eax27; CHECK-NEXT:    shrl $31, %eax28; CHECK-NEXT:    sarl $5, %ecx29; CHECK-NEXT:    addl %eax, %ecx30; CHECK-NEXT:    movl $1374389535, %edx # imm = 0x51EB851F31; CHECK-NEXT:    movl %esi, %eax32; CHECK-NEXT:    imull %edx33; CHECK-NEXT:    movl %edx, %edi34; CHECK-NEXT:    movl %edx, %eax35; CHECK-NEXT:    shrl $31, %eax36; CHECK-NEXT:    sarl $7, %edi37; CHECK-NEXT:    addl %eax, %edi38; CHECK-NEXT:    imull $36525, %esi, %eax # imm = 0x8EAD39; CHECK-NEXT:    addl $172251900, %eax # imm = 0xA445AFC40; CHECK-NEXT:    movl $1374389535, %edx # imm = 0x51EB851F41; CHECK-NEXT:    imull %edx42; CHECK-NEXT:    movl %edx, %eax43; CHECK-NEXT:    shrl $31, %eax44; CHECK-NEXT:    sarl $5, %edx45; CHECK-NEXT:    addl %eax, %edx46; CHECK-NEXT:    addl 16(%ebx), %ecx47; CHECK-NEXT:    addl %edi, %ecx48; CHECK-NEXT:    leal 257(%ecx,%edx), %eax49; CHECK-NEXT:    movl %eax, {{[0-9]+}}(%esp)50; CHECK-NEXT:    fildl {{[0-9]+}}(%esp)51; CHECK-NEXT:    fadds {{\.?LCPI[0-9]+_[0-9]+}}52; CHECK-NEXT:    fmuls {{\.?LCPI[0-9]+_[0-9]+}}53; CHECK-NEXT:    fnstcw {{[0-9]+}}(%esp)54; CHECK-NEXT:    movzwl {{[0-9]+}}(%esp), %eax55; CHECK-NEXT:    orl $3072, %eax # imm = 0xC0056; CHECK-NEXT:    movw %ax, {{[0-9]+}}(%esp)57; CHECK-NEXT:    fldcw {{[0-9]+}}(%esp)58; CHECK-NEXT:    fistpll {{[0-9]+}}(%esp)59; CHECK-NEXT:    fldcw {{[0-9]+}}(%esp)60; CHECK-NEXT:    movb $1, 36(%ebx)61; CHECK-NEXT:    imull $3600000, 20(%ebx), %ecx # imm = 0x36EE8062; CHECK-NEXT:    imull $60000, 24(%ebx), %eax # imm = 0xEA6063; CHECK-NEXT:    addl %ecx, %eax64; CHECK-NEXT:    fldl 28(%ebx)65; CHECK-NEXT:    fmuls {{\.?LCPI[0-9]+_[0-9]+}}66; CHECK-NEXT:    fnstcw {{[0-9]+}}(%esp)67; CHECK-NEXT:    movzwl {{[0-9]+}}(%esp), %ecx68; CHECK-NEXT:    orl $3072, %ecx # imm = 0xC0069; CHECK-NEXT:    movw %cx, {{[0-9]+}}(%esp)70; CHECK-NEXT:    movl %eax, %ecx71; CHECK-NEXT:    sarl $31, %ecx72; CHECK-NEXT:    fldcw {{[0-9]+}}(%esp)73; CHECK-NEXT:    fistpll {{[0-9]+}}(%esp)74; CHECK-NEXT:    fldcw {{[0-9]+}}(%esp)75; CHECK-NEXT:    addl {{[0-9]+}}(%esp), %eax76; CHECK-NEXT:    adcl {{[0-9]+}}(%esp), %ecx77; CHECK-NEXT:    addl {{[0-9]+}}(%esp), %eax78; CHECK-NEXT:    adcl {{[0-9]+}}(%esp), %ecx79; CHECK-NEXT:    movl %eax, (%ebx)80; CHECK-NEXT:    movl %ecx, 4(%ebx)81; CHECK-NEXT:    leal -12(%ebp), %esp82; CHECK-NEXT:    popl %esi83; CHECK-NEXT:    popl %edi84; CHECK-NEXT:    popl %ebx85; CHECK-NEXT:    popl %ebp86; CHECK-NEXT:    retl87  %2 = getelementptr inbounds %struct.DateTime, ptr %0, i32 0, i32 788  %3 = getelementptr inbounds %struct.DateTime, ptr %0, i32 0, i32 189  %4 = load i32, ptr %3, align 490  %5 = getelementptr inbounds %struct.DateTime, ptr %0, i32 0, i32 291  %6 = load i32, ptr %5, align 492  %7 = getelementptr inbounds %struct.DateTime, ptr %0, i32 0, i32 393  %8 = load i32, ptr %7, align 494  %9 = icmp slt i32 %6, 395  %10 = add i32 %6, 1296  %11 = select i1 %9, i32 %10, i32 %697  %12 = sext i1 %9 to i3298  %13 = add i32 %4, %1299  %14 = sdiv i32 %13, -100100  %15 = sdiv i32 %13, 400101  %16 = mul i32 %13, 36525102  %17 = add i32 %16, 172251900103  %18 = sdiv i32 %17, 100104  %19 = mul i32 %11, 306001105  %20 = add i32 %19, 306001106  %21 = sdiv i32 %20, 10000107  %22 = add i32 %8, 2108  %23 = add i32 %22, %14109  %24 = add i32 %23, %15110  %25 = add i32 %24, 255111  %26 = add i32 %25, %18112  %27 = sitofp i32 %26 to double113  %28 = fadd double %27, -1.524500e+03114  %29 = fmul double %28, 8.640000e+07115  %30 = fptosi double %29 to i64116  store i8 1, ptr %2, align 4117  %31 = getelementptr inbounds %struct.DateTime, ptr %0, i32 0, i32 4118  %32 = load i32, ptr %31, align 4119  %33 = mul i32 %32, 3600000120  %34 = getelementptr inbounds %struct.DateTime, ptr %0, i32 0, i32 5121  %35 = load i32, ptr %34, align 4122  %36 = mul i32 %35, 60000123  %37 = add i32 %36, %33124  %38 = sext i32 %37 to i64125  %39 = getelementptr inbounds %struct.DateTime, ptr %0, i32 0, i32 6126  %40 = load double, ptr %39, align 4127  %41 = fmul double %40, 1.000000e+03128  %42 = fptosi double %41 to i64129  %43 = add i64 %38, %42130  %44 = add i64 %43, %30131  store i64 %44, ptr %0, align 4132  ret void133}134 135attributes #0 = { "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="i486" "target-features"="+x87" "use-soft-float"="false" }136