.file "suboptimal.c" .text .p2align 2,,3 .globl f9952_mul764333263_shift27 .type f9952_mul764333263_shift27, @function f9952_mul764333263_shift27: pushl %ebp movl %esp, %ebp movl $764333263, %eax mull 8(%ebp) shrl $27, %edx movl %edx, v leave ret .size f9952_mul764333263_shift27, .-f9952_mul764333263_shift27 .p2align 2,,3 .globl f9188_mul365384439_shift27 .type f9188_mul365384439_shift27, @function f9188_mul365384439_shift27: pushl %ebp movl %esp, %ebp movl $365384439, %eax mull 8(%ebp) shrl $27, %edx movl %edx, v leave ret .size f9188_mul365384439_shift27, .-f9188_mul365384439_shift27 .p2align 2,,3 .globl f9188_mul365384439_shift27_prime .type f9188_mul365384439_shift27_prime, @function f9188_mul365384439_shift27_prime: pushl %ebp movl %esp, %ebp movl $365384439, %eax mull 8(%ebp) movl %edx, %eax xorl %edx, %edx shrl $27, %eax movl %eax, v leave ret .size f9188_mul365384439_shift27_prime, .-f9188_mul365384439_shift27_prime .p2align 2,,3 .globl f8399_mul2283243215_shift29 .type f8399_mul2283243215_shift29, @function f8399_mul2283243215_shift29: pushl %ebp movl %esp, %ebp movl $-2011724081, %eax mull 8(%ebp) shrl $29, %edx movl %edx, v leave ret .size f8399_mul2283243215_shift29, .-f8399_mul2283243215_shift29 .p2align 2,,3 .globl f8399_mul2283243215_shift29_prime .type f8399_mul2283243215_shift29_prime, @function f8399_mul2283243215_shift29_prime: pushl %ebp movl %esp, %ebp movl $-2011724081, %eax mull 8(%ebp) movl %edx, %eax xorl %edx, %edx shrl $29, %eax movl %eax, v leave ret .size f8399_mul2283243215_shift29_prime, .-f8399_mul2283243215_shift29_prime .p2align 2,,3 .globl f8267_mul2482476753_shift30 .type f8267_mul2482476753_shift30, @function f8267_mul2482476753_shift30: pushl %ebp movl %esp, %ebp movl $-1812490543, %eax mull 8(%ebp) shrl $30, %edx movl %edx, v leave ret .size f8267_mul2482476753_shift30, .-f8267_mul2482476753_shift30 .p2align 2,,3 .globl f8267_mul2482476753_shift30_prime .type f8267_mul2482476753_shift30_prime, @function f8267_mul2482476753_shift30_prime: pushl %ebp movl %esp, %ebp movl $-1812490543, %eax mull 8(%ebp) movl %edx, %eax xorl %edx, %edx shrl $30, %eax movl %eax, v leave ret .size f8267_mul2482476753_shift30_prime, .-f8267_mul2482476753_shift30_prime .section .rodata.str1.1,"aMS",@progbits,1 .LC0: .string "A=%u\r" .LC1: .string "1: A=%u u=%u v=%u\n" .LC2: .string "2: A=%u u=%u v=%u\n" .LC3: .string "3: A=%u u=%u v=%u\n" .LC4: .string "" .text .p2align 2,,3 .globl main .type main, @function main: leal 4(%esp), %ecx andl $-16, %esp pushl -4(%ecx) pushl %ebp movl %esp, %ebp pushl %edi pushl %esi pushl %ebx pushl %ecx subl $24, %esp movl $1, %edi jmp .L16 .p2align 2,,3 .L17: movl $365384439, %eax mull %edi movl %edx, %eax xorl %edx, %edx shrl $27, %eax movl %eax, -24(%ebp) movl %edx, -20(%ebp) movl $365384439, %eax mull %edi movl %edx, %ecx shrl $27, %ecx cmpl -24(%ebp), %ecx jne .L31 movl $-2011724081, %eax mull %edi movl %edx, %eax xorl %edx, %edx shrl $29, %eax movl %eax, -24(%ebp) movl %edx, -20(%ebp) movl $-2011724081, %eax mull %edi movl %edx, %ecx shrl $29, %ecx cmpl -24(%ebp), %ecx jne .L32 movl $-1812490543, %eax mull %edi movl %edx, %eax xorl %edx, %edx shrl $30, %eax movl %eax, -32(%ebp) movl %edx, -28(%ebp) movl $-1812490543, %eax mull %edi movl %edx, %ebx shrl $30, %ebx cmpl -32(%ebp), %ebx jne .L33 incl %edi je .L34 .L16: testw %di, %di jne .L17 subl $8, %esp pushl %edi pushl $.LC0 call printf addl $16, %esp jmp .L17 .L31: pushl %ecx pushl -24(%ebp) pushl %edi pushl $.LC1 call printf addl $16, %esp xorl %eax, %eax leal -16(%ebp), %esp popl %ecx popl %ebx popl %esi popl %edi leave leal -4(%ecx), %esp ret .L32: pushl %ecx pushl -24(%ebp) pushl %edi pushl $.LC2 call printf addl $16, %esp xorl %eax, %eax leal -16(%ebp), %esp popl %ecx popl %ebx popl %esi popl %edi leave leal -4(%ecx), %esp ret .L33: pushl %ebx pushl -32(%ebp) pushl %edi pushl $.LC3 call printf addl $16, %esp xorl %eax, %eax leal -16(%ebp), %esp popl %ecx popl %ebx popl %esi popl %edi leave leal -4(%ecx), %esp ret .L34: subl $12, %esp pushl $.LC4 call puts addl $16, %esp xorl %eax, %eax leal -16(%ebp), %esp popl %ecx popl %ebx popl %esi popl %edi leave leal -4(%ecx), %esp ret .size main, .-main .comm v,4,4 .ident "GCC: (GNU) 4.1.1" .section .note.GNU-stack,"",@progbits