Expand 32-bit bitconverts via memory

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76050 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Anton Korobeynikov 2009-07-16 14:30:29 +00:00
parent f2fd8ea1c9
commit bb8a04806d
2 changed files with 17 additions and 2 deletions

View File

@ -130,8 +130,8 @@ SystemZTargetLowering::SystemZTargetLowering(SystemZTargetMachine &tm) :
setOperationAction(ISD::FCOS, MVT::f64, Expand);
// We have only 64-bit bitconverts
setOperationAction(ISD::BIT_CONVERT, MVT::f32, Promote);
setOperationAction(ISD::BIT_CONVERT, MVT::i32, Promote);
setOperationAction(ISD::BIT_CONVERT, MVT::f32, Expand);
setOperationAction(ISD::BIT_CONVERT, MVT::i32, Expand);
setOperationAction(ISD::UINT_TO_FP, MVT::i32, Expand);
setOperationAction(ISD::UINT_TO_FP, MVT::i64, Expand);

View File

@ -0,0 +1,15 @@
; ModuleID = 'bugpoint.test.bc'
target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
target triple = "s390x-linux"
define float @foo(i32 signext %a) {
entry:
%b = bitcast i32 %a to float
ret float %b
}
define i32 @bar(float %a) {
entry:
%b = bitcast float %a to i32
ret i32 %b
}