diff options
| author | Tim Northover <tnorthover@apple.com> | 2014-04-15 14:00:03 +0000 | 
|---|---|---|
| committer | Tim Northover <tnorthover@apple.com> | 2014-04-15 14:00:03 +0000 | 
| commit | b37cff1ae2f76c430ee765c415cf1d4570c50e36 (patch) | |
| tree | 2da43596033da22e268f6e7f299a239c46d2bc9e /llvm/lib/Target/ARM64/ARM64ISelLowering.cpp | |
| parent | 80a70a265ad89ec2486f0a924024c1e200d84dd4 (diff) | |
| download | bcm5719-llvm-b37cff1ae2f76c430ee765c415cf1d4570c50e36.tar.gz bcm5719-llvm-b37cff1ae2f76c430ee765c415cf1d4570c50e36.zip | |
AArch64/ARM64: add half as a storage type on ARM64.
This brings it into line with the AArch64 behaviour and should open the way for
certain OpenCL features.
llvm-svn: 206286
Diffstat (limited to 'llvm/lib/Target/ARM64/ARM64ISelLowering.cpp')
| -rw-r--r-- | llvm/lib/Target/ARM64/ARM64ISelLowering.cpp | 4 | 
1 files changed, 4 insertions, 0 deletions
| diff --git a/llvm/lib/Target/ARM64/ARM64ISelLowering.cpp b/llvm/lib/Target/ARM64/ARM64ISelLowering.cpp index 205cea669e3..cfb9d1e2da3 100644 --- a/llvm/lib/Target/ARM64/ARM64ISelLowering.cpp +++ b/llvm/lib/Target/ARM64/ARM64ISelLowering.cpp @@ -84,6 +84,7 @@ ARM64TargetLowering::ARM64TargetLowering(ARM64TargetMachine &TM)    // Set up the register classes.    addRegisterClass(MVT::i32, &ARM64::GPR32allRegClass);    addRegisterClass(MVT::i64, &ARM64::GPR64allRegClass); +  addRegisterClass(MVT::f16, &ARM64::FPR16RegClass);    addRegisterClass(MVT::f32, &ARM64::FPR32RegClass);    addRegisterClass(MVT::f64, &ARM64::FPR64RegClass);    addRegisterClass(MVT::f128, &ARM64::FPR128RegClass); @@ -370,10 +371,13 @@ ARM64TargetLowering::ARM64TargetLowering(ARM64TargetMachine &TM)    setLoadExtAction(ISD::EXTLOAD, MVT::f64, Expand);    setLoadExtAction(ISD::EXTLOAD, MVT::f80, Expand);    setLoadExtAction(ISD::SEXTLOAD, MVT::i1, Expand); +  setTruncStoreAction(MVT::f32, MVT::f16, Expand);    setTruncStoreAction(MVT::f64, MVT::f32, Expand); +  setTruncStoreAction(MVT::f64, MVT::f16, Expand);    setTruncStoreAction(MVT::f128, MVT::f80, Expand);    setTruncStoreAction(MVT::f128, MVT::f64, Expand);    setTruncStoreAction(MVT::f128, MVT::f32, Expand); +  setTruncStoreAction(MVT::f128, MVT::f16, Expand);    setTruncStoreAction(MVT::v2i32, MVT::v2i16, Expand);    // Indexed loads and stores are supported.    for (unsigned im = (unsigned)ISD::PRE_INC; | 

