xref: /llvm-project/llvm/test/CodeGen/X86/pr57283.ll (revision 0c5b0b50c22d215177f7cdacf533444665ffd864)
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