mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-09-09 15:57:28 +00:00
with an invalid type then split the result and perform the overflow check normally. Fixes the 32-bit parts of rdar://8622122 and rdar://8774702. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123864 91177308-0d34-0410-b5e6-96231b3b80d8
15 lines
410 B
LLVM
15 lines
410 B
LLVM
; RUN: llc < %s -mtriple=thumbv6-apple-darwin | FileCheck %s
|
|
|
|
%umul.ty = type { i32, i1 }
|
|
|
|
define i32 @func(i32 %a) nounwind {
|
|
; CHECK: func
|
|
; CHECK: muldi3
|
|
%tmp0 = tail call %umul.ty @llvm.umul.with.overflow.i32(i32 %a, i32 37)
|
|
%tmp1 = extractvalue %umul.ty %tmp0, 0
|
|
%tmp2 = select i1 undef, i32 -1, i32 %tmp1
|
|
ret i32 %tmp2
|
|
}
|
|
|
|
declare %umul.ty @llvm.umul.with.overflow.i32(i32, i32) nounwind readnone
|