| Index: src/IceInstARM32.cpp
|
| diff --git a/src/IceInstARM32.cpp b/src/IceInstARM32.cpp
|
| index a1605828e3eae08637d8615c6632cd633303a5de..a06d71dbdab637cfbe905130e8c5a08309ea3751 100644
|
| --- a/src/IceInstARM32.cpp
|
| +++ b/src/IceInstARM32.cpp
|
| @@ -1366,7 +1366,12 @@ template <> void InstARM32Ldr::emitIAS(const Cfg *Func) const {
|
| Variable *Dest = getDest();
|
| Type DestTy = Dest->getType();
|
| auto *Asm = Func->getAssembler<ARM32::AssemblerARM32>();
|
| - if (isVectorType(DestTy) || isScalarFloatingType(DestTy))
|
| + if (isScalarFloatingType(DestTy)) {
|
| + if (DestTy == IceType_f32)
|
| + Asm->vldrs(Dest, getSrc(0), getPredicate(), Func->getTarget());
|
| + else
|
| + Asm->vldrd(Dest, getSrc(0), getPredicate(), Func->getTarget());
|
| + } else if (isVectorType(DestTy))
|
| // TODO(kschimpf) Handle case.
|
| Asm->setNeedsTextFixup();
|
| else
|
|
|