1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc < %s -mtriple=i686-unknown | FileCheck %s --check-prefix=X86 3; RUN: llc < %s -mtriple=x86_64-unknown | FileCheck %s --check-prefix=X64 4 5define void @PR57283() nounwind { 6; X86-LABEL: PR57283: 7; X86: # %bb.0: # %BB 8; X86-NEXT: pushl %ebp 9; X86-NEXT: movl %esp, %ebp 10; X86-NEXT: andl $-8, %esp 11; X86-NEXT: subl $16, %esp 12; X86-NEXT: movl $0, {{[0-9]+}}(%esp) 13; X86-NEXT: movl $0, (%esp) 14; X86-NEXT: movl $0, {{[0-9]+}}(%esp) 15; X86-NEXT: movl $0, {{[0-9]+}}(%esp) 16; X86-NEXT: movl %ebp, %esp 17; X86-NEXT: popl %ebp 18; X86-NEXT: retl 19; 20; X64-LABEL: PR57283: 21; X64: # %bb.0: # %BB 22; X64-NEXT: movq $0, -{{[0-9]+}}(%rsp) 23; X64-NEXT: movq $0, -{{[0-9]+}}(%rsp) 24; X64-NEXT: retq 25BB: 26 %A6 = alloca i64, align 8 27 %A = alloca i64, align 8 28 %L = load i64, ptr %A, align 4 29 %B3 = sub i64 %L, %L 30 %B2 = mul i64 %B3, 4294967296 31 %B1 = add i64 %B2, %B2 32 %B4 = udiv i64 %B2, -9223372036854775808 33 %B = xor i64 %B1, %B4 34 store i64 %B, ptr %A, align 4 35 %B5 = sdiv i64 %B, -1 36 store i64 %B5, ptr %A6, align 4 37 ret void 38} 39