mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-30 15:10:33 +00:00
33e1fb27fd
We make the assumption in most of our constant folding code that a fp2int will target an integer of 128-bits or less, calling the APFloat::convertToInteger with only uint64_t[2] of raw bits for the result. Fuzz testing (PR24662) showed that we don't handle other cases at all, resulting in stack overflows and all sorts of crashes. This patch uses the APSInt version of APFloat::convertToInteger instead to better handle such cases. Differential Revision: https://reviews.llvm.org/D31074 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@298226 91177308-0d34-0410-b5e6-96231b3b80d8
13 lines
270 B
LLVM
13 lines
270 B
LLVM
; RUN: llc < %s -fast-isel
|
|
; RUN: llc < %s
|
|
|
|
define i60 @PR24662a() {
|
|
ret i60 trunc (i670010 fptoui(float 0x400D9999A0000000 to i670010) to i60)
|
|
}
|
|
|
|
define i60 @PR24662b() {
|
|
%1 = fptoui float 0x400D9999A0000000 to i670010
|
|
%2 = trunc i670010 %1 to i60
|
|
ret i60 %2
|
|
}
|