llvm/test/CodeGen/X86/rem_crash.ll
Renato Golin 53546d81b6 Making rem_crash.ll target-specific
This test failed in some ARM bots after a divmod change because it was
running on a native llc, instead of targeted one. This makes sure the test
is target-specific (as intended), and also copies to ARM and AArch64
directories. If it is also supposed to work on other architectures, I'll
leave as an exercise to the respective maintainers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262620 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-03 14:01:10 +00:00

259 lines
4.5 KiB
LLVM

; RUN: llc < %s -march=x86
; RUN: llc < %s -march=x86-64
define i8 @test_minsize_uu8(i8 %x) minsize optsize {
entry:
%0 = udiv i8 %x, 10
%1 = urem i8 %x, 10
%res = add i8 %0, %1
ret i8 %res
}
define i8 @test_minsize_ss8(i8 %x) minsize optsize {
entry:
%0 = sdiv i8 %x, 10
%1 = srem i8 %x, 10
%res = add i8 %0, %1
ret i8 %res
}
define i8 @test_minsize_us8(i8 %x) minsize optsize {
entry:
%0 = udiv i8 %x, 10
%1 = srem i8 %x, 10
%res = add i8 %0, %1
ret i8 %res
}
define i8 @test_minsize_su8(i8 %x) minsize optsize {
entry:
%0 = sdiv i8 %x, 10
%1 = urem i8 %x, 10
%res = add i8 %0, %1
ret i8 %res
}
define i16 @test_minsize_uu16(i16 %x) minsize optsize {
entry:
%0 = udiv i16 %x, 10
%1 = urem i16 %x, 10
%res = add i16 %0, %1
ret i16 %res
}
define i16 @test_minsize_ss16(i16 %x) minsize optsize {
entry:
%0 = sdiv i16 %x, 10
%1 = srem i16 %x, 10
%res = add i16 %0, %1
ret i16 %res
}
define i16 @test_minsize_us16(i16 %x) minsize optsize {
entry:
%0 = udiv i16 %x, 10
%1 = srem i16 %x, 10
%res = add i16 %0, %1
ret i16 %res
}
define i16 @test_minsize_su16(i16 %x) minsize optsize {
entry:
%0 = sdiv i16 %x, 10
%1 = urem i16 %x, 10
%res = add i16 %0, %1
ret i16 %res
}
define i32 @test_minsize_uu32(i32 %x) minsize optsize {
entry:
%0 = udiv i32 %x, 10
%1 = urem i32 %x, 10
%res = add i32 %0, %1
ret i32 %res
}
define i32 @test_minsize_ss32(i32 %x) minsize optsize {
entry:
%0 = sdiv i32 %x, 10
%1 = srem i32 %x, 10
%res = add i32 %0, %1
ret i32 %res
}
define i32 @test_minsize_us32(i32 %x) minsize optsize {
entry:
%0 = udiv i32 %x, 10
%1 = srem i32 %x, 10
%res = add i32 %0, %1
ret i32 %res
}
define i32 @test_minsize_su32(i32 %x) minsize optsize {
entry:
%0 = sdiv i32 %x, 10
%1 = urem i32 %x, 10
%res = add i32 %0, %1
ret i32 %res
}
define i64 @test_minsize_uu64(i64 %x) minsize optsize {
entry:
%0 = udiv i64 %x, 10
%1 = urem i64 %x, 10
%res = add i64 %0, %1
ret i64 %res
}
define i64 @test_minsize_ss64(i64 %x) minsize optsize {
entry:
%0 = sdiv i64 %x, 10
%1 = srem i64 %x, 10
%res = add i64 %0, %1
ret i64 %res
}
define i64 @test_minsize_us64(i64 %x) minsize optsize {
entry:
%0 = udiv i64 %x, 10
%1 = srem i64 %x, 10
%res = add i64 %0, %1
ret i64 %res
}
define i64 @test_minsize_su64(i64 %x) minsize optsize {
entry:
%0 = sdiv i64 %x, 10
%1 = urem i64 %x, 10
%res = add i64 %0, %1
ret i64 %res
}
define i8 @test_uu8(i8 %x) optsize {
entry:
%0 = udiv i8 %x, 10
%1 = urem i8 %x, 10
%res = add i8 %0, %1
ret i8 %res
}
define i8 @test_ss8(i8 %x) optsize {
entry:
%0 = sdiv i8 %x, 10
%1 = srem i8 %x, 10
%res = add i8 %0, %1
ret i8 %res
}
define i8 @test_us8(i8 %x) optsize {
entry:
%0 = udiv i8 %x, 10
%1 = srem i8 %x, 10
%res = add i8 %0, %1
ret i8 %res
}
define i8 @test_su8(i8 %x) optsize {
entry:
%0 = sdiv i8 %x, 10
%1 = urem i8 %x, 10
%res = add i8 %0, %1
ret i8 %res
}
define i16 @test_uu16(i16 %x) optsize {
entry:
%0 = udiv i16 %x, 10
%1 = urem i16 %x, 10
%res = add i16 %0, %1
ret i16 %res
}
define i16 @test_ss16(i16 %x) optsize {
entry:
%0 = sdiv i16 %x, 10
%1 = srem i16 %x, 10
%res = add i16 %0, %1
ret i16 %res
}
define i16 @test_us16(i16 %x) optsize {
entry:
%0 = udiv i16 %x, 10
%1 = srem i16 %x, 10
%res = add i16 %0, %1
ret i16 %res
}
define i16 @test_su16(i16 %x) optsize {
entry:
%0 = sdiv i16 %x, 10
%1 = urem i16 %x, 10
%res = add i16 %0, %1
ret i16 %res
}
define i32 @test_uu32(i32 %x) optsize {
entry:
%0 = udiv i32 %x, 10
%1 = urem i32 %x, 10
%res = add i32 %0, %1
ret i32 %res
}
define i32 @test_ss32(i32 %x) optsize {
entry:
%0 = sdiv i32 %x, 10
%1 = srem i32 %x, 10
%res = add i32 %0, %1
ret i32 %res
}
define i32 @test_us32(i32 %x) optsize {
entry:
%0 = udiv i32 %x, 10
%1 = srem i32 %x, 10
%res = add i32 %0, %1
ret i32 %res
}
define i32 @test_su32(i32 %x) optsize {
entry:
%0 = sdiv i32 %x, 10
%1 = urem i32 %x, 10
%res = add i32 %0, %1
ret i32 %res
}
define i64 @test_uu64(i64 %x) optsize {
entry:
%0 = udiv i64 %x, 10
%1 = urem i64 %x, 10
%res = add i64 %0, %1
ret i64 %res
}
define i64 @test_ss64(i64 %x) optsize {
entry:
%0 = sdiv i64 %x, 10
%1 = srem i64 %x, 10
%res = add i64 %0, %1
ret i64 %res
}
define i64 @test_us64(i64 %x) optsize {
entry:
%0 = udiv i64 %x, 10
%1 = srem i64 %x, 10
%res = add i64 %0, %1
ret i64 %res
}
define i64 @test_su64(i64 %x) optsize {
entry:
%0 = sdiv i64 %x, 10
%1 = urem i64 %x, 10
%res = add i64 %0, %1
ret i64 %res
}