mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-04 19:38:22 +00:00
52578b0850
The mapping of these two intrinsics in ARMInstrInfo.td had a small omission which lead to their operands not being validated/transformed before being lowered into usat and ssat instructions. This can cause incorrect instructions to be emitted. I've also added tests for the remaining two saturating arithmatic intrinsics @llvm.arm.qadd and @llvm.arm.qsub as they are missing codegen tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250697 91177308-0d34-0410-b5e6-96231b3b80d8
11 lines
325 B
LLVM
11 lines
325 B
LLVM
; RUN: not llc < %s -O1 -mtriple=armv6-none-none-eabi 2>&1 | FileCheck %s
|
|
|
|
; immediate argument > upper-bound
|
|
; CHECK: LLVM ERROR: Cannot select: intrinsic %llvm.arm.ssat
|
|
define i32 @ssat1() nounwind {
|
|
%tmp = call i32 @llvm.arm.ssat(i32 128, i32 33)
|
|
ret i32 %tmp
|
|
}
|
|
|
|
declare i32 @llvm.arm.ssat(i32, i32) nounwind readnone
|