mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-28 14:10:41 +00:00
[NVPTX] 64-bit ADDC/ADDE are not legal
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185333 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
be08c60533
commit
fc32eb472a
@ -204,6 +204,9 @@ NVPTXTargetLowering::NVPTXTargetLowering(NVPTXTargetMachine &TM)
|
||||
// TRAP can be lowered to PTX trap
|
||||
setOperationAction(ISD::TRAP, MVT::Other, Legal);
|
||||
|
||||
setOperationAction(ISD::ADDC, MVT::i64, Expand);
|
||||
setOperationAction(ISD::ADDE, MVT::i64, Expand);
|
||||
|
||||
// Register custom handling for vector loads/stores
|
||||
for (int i = MVT::FIRST_VECTOR_VALUETYPE; i <= MVT::LAST_VECTOR_VALUETYPE;
|
||||
++i) {
|
||||
|
19
test/CodeGen/NVPTX/add-128bit.ll
Normal file
19
test/CodeGen/NVPTX/add-128bit.ll
Normal file
@ -0,0 +1,19 @@
|
||||
; RUN: llc < %s -march=nvptx -mcpu=sm_20 | FileCheck %s
|
||||
|
||||
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v16:16:16-v32:32:32-v64:64:64-v128:128:128-n16:32:64"
|
||||
|
||||
|
||||
|
||||
define void @foo(i64 %a, i64 %add, i128* %retptr) {
|
||||
; CHECK: add.s64
|
||||
; CHECK: setp.lt.u64
|
||||
; CHECK: setp.lt.u64
|
||||
; CHECK: selp.b64
|
||||
; CHECK: selp.b64
|
||||
; CHECK: add.s64
|
||||
%t1 = sext i64 %a to i128
|
||||
%add2 = zext i64 %add to i128
|
||||
%val = add i128 %t1, %add2
|
||||
store i128 %val, i128* %retptr
|
||||
ret void
|
||||
}
|
Loading…
Reference in New Issue
Block a user