mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-10 22:43:46 +00:00
![Asiri Rathnayake](/assets/img/avatar_default.png)
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
324 B
LLVM
11 lines
324 B
LLVM
; RUN: not llc < %s -O1 -mtriple=armv6-none-none-eabi 2>&1 | FileCheck %s
|
|
|
|
; immediate argument < lower-bound
|
|
; CHECK: LLVM ERROR: Cannot select: intrinsic %llvm.arm.ssat
|
|
define i32 @ssat1() nounwind {
|
|
%tmp = call i32 @llvm.arm.ssat(i32 128, i32 0)
|
|
ret i32 %tmp
|
|
}
|
|
|
|
declare i32 @llvm.arm.ssat(i32, i32) nounwind readnone
|