[llvm] b2e69f5 - [LoongArch] Add machine function pass to merge base + offset (#101139)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 8 08:05:46 PDT 2024
Author: hev
Date: 2024-08-08T23:05:38+08:00
New Revision: b2e69f52bb5da067109b9a7d1f73d0dd1a6bb5ad
URL: https://github.com/llvm/llvm-project/commit/b2e69f52bb5da067109b9a7d1f73d0dd1a6bb5ad
DIFF: https://github.com/llvm/llvm-project/commit/b2e69f52bb5da067109b9a7d1f73d0dd1a6bb5ad.diff
LOG: [LoongArch] Add machine function pass to merge base + offset (#101139)
This commit references RISC-V to add a machine function pass to merge
the base address and offset.
Added:
llvm/lib/Target/LoongArch/LoongArchMergeBaseOffset.cpp
Modified:
llvm/lib/Target/LoongArch/CMakeLists.txt
llvm/lib/Target/LoongArch/LoongArch.h
llvm/lib/Target/LoongArch/LoongArchAsmPrinter.cpp
llvm/lib/Target/LoongArch/LoongArchTargetMachine.cpp
llvm/test/CodeGen/LoongArch/block-address.ll
llvm/test/CodeGen/LoongArch/calling-conv-lp64d.ll
llvm/test/CodeGen/LoongArch/double-imm.ll
llvm/test/CodeGen/LoongArch/float-imm-vldi.ll
llvm/test/CodeGen/LoongArch/float-imm.ll
llvm/test/CodeGen/LoongArch/ghc-cc.ll
llvm/test/CodeGen/LoongArch/global-address.ll
llvm/test/CodeGen/LoongArch/global-variable-code-model.ll
llvm/test/CodeGen/LoongArch/inline-asm-constraint-f.ll
llvm/test/CodeGen/LoongArch/inline-asm-constraint-m.ll
llvm/test/CodeGen/LoongArch/ir-instruction/atomicrmw-fp.ll
llvm/test/CodeGen/LoongArch/ir-instruction/double-convert.ll
llvm/test/CodeGen/LoongArch/ir-instruction/float-convert.ll
llvm/test/CodeGen/LoongArch/ir-instruction/load-store.ll
llvm/test/CodeGen/LoongArch/machinelicm-address-pseudos.ll
llvm/test/CodeGen/LoongArch/merge-base-offset.ll
llvm/test/CodeGen/LoongArch/opt-pipeline.ll
llvm/test/CodeGen/LoongArch/psabi-restricted-scheduling.ll
llvm/test/CodeGen/LoongArch/vector-fp-imm.ll
llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/loongarch_generated_funcs.ll.generated.expected
llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/loongarch_generated_funcs.ll.nogenerated.expected
llvm/utils/gn/secondary/llvm/lib/Target/LoongArch/BUILD.gn
Removed:
################################################################################
diff --git a/llvm/lib/Target/LoongArch/CMakeLists.txt b/llvm/lib/Target/LoongArch/CMakeLists.txt
index cadc335a621f2e..0f674b1b0fa9e2 100644
--- a/llvm/lib/Target/LoongArch/CMakeLists.txt
+++ b/llvm/lib/Target/LoongArch/CMakeLists.txt
@@ -24,6 +24,7 @@ add_llvm_target(LoongArchCodeGen
LoongArchISelDAGToDAG.cpp
LoongArchISelLowering.cpp
LoongArchMCInstLower.cpp
+ LoongArchMergeBaseOffset.cpp
LoongArchOptWInstrs.cpp
LoongArchRegisterInfo.cpp
LoongArchSubtarget.cpp
diff --git a/llvm/lib/Target/LoongArch/LoongArch.h b/llvm/lib/Target/LoongArch/LoongArch.h
index adfb844ee31b64..db605237388809 100644
--- a/llvm/lib/Target/LoongArch/LoongArch.h
+++ b/llvm/lib/Target/LoongArch/LoongArch.h
@@ -36,12 +36,14 @@ bool lowerLoongArchMachineOperandToMCOperand(const MachineOperand &MO,
FunctionPass *createLoongArchDeadRegisterDefinitionsPass();
FunctionPass *createLoongArchExpandAtomicPseudoPass();
FunctionPass *createLoongArchISelDag(LoongArchTargetMachine &TM);
+FunctionPass *createLoongArchMergeBaseOffsetOptPass();
FunctionPass *createLoongArchOptWInstrsPass();
FunctionPass *createLoongArchPreRAExpandPseudoPass();
FunctionPass *createLoongArchExpandPseudoPass();
void initializeLoongArchDAGToDAGISelLegacyPass(PassRegistry &);
void initializeLoongArchDeadRegisterDefinitionsPass(PassRegistry &);
void initializeLoongArchExpandAtomicPseudoPass(PassRegistry &);
+void initializeLoongArchMergeBaseOffsetOptPass(PassRegistry &);
void initializeLoongArchOptWInstrsPass(PassRegistry &);
void initializeLoongArchPreRAExpandPseudoPass(PassRegistry &);
void initializeLoongArchExpandPseudoPass(PassRegistry &);
diff --git a/llvm/lib/Target/LoongArch/LoongArchAsmPrinter.cpp b/llvm/lib/Target/LoongArch/LoongArchAsmPrinter.cpp
index f478870217ec60..8bb9497a847fa7 100644
--- a/llvm/lib/Target/LoongArch/LoongArchAsmPrinter.cpp
+++ b/llvm/lib/Target/LoongArch/LoongArchAsmPrinter.cpp
@@ -130,10 +130,16 @@ bool LoongArchAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
OS << "$" << LoongArchInstPrinter::getRegisterName(BaseMO.getReg());
// Print the offset operand.
const MachineOperand &OffsetMO = MI->getOperand(OpNo + 1);
+ MCOperand MCO;
+ if (!lowerOperand(OffsetMO, MCO))
+ return true;
if (OffsetMO.isReg())
OS << ", $" << LoongArchInstPrinter::getRegisterName(OffsetMO.getReg());
else if (OffsetMO.isImm())
OS << ", " << OffsetMO.getImm();
+ else if (OffsetMO.isGlobal() || OffsetMO.isBlockAddress() ||
+ OffsetMO.isMCSymbol())
+ OS << ", " << *MCO.getExpr();
else
return true;
diff --git a/llvm/lib/Target/LoongArch/LoongArchMergeBaseOffset.cpp b/llvm/lib/Target/LoongArch/LoongArchMergeBaseOffset.cpp
new file mode 100644
index 00000000000000..ae50b7a6f923e3
--- /dev/null
+++ b/llvm/lib/Target/LoongArch/LoongArchMergeBaseOffset.cpp
@@ -0,0 +1,636 @@
+//===---- LoongArchMergeBaseOffset.cpp - Optimise address calculations ----===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+//
+// Merge the offset of address calculation into the offset field
+// of instructions in a global address lowering sequence.
+//
+//===----------------------------------------------------------------------===//
+
+#include "LoongArch.h"
+#include "LoongArchTargetMachine.h"
+#include "llvm/CodeGen/MachineFunctionPass.h"
+#include "llvm/CodeGen/Passes.h"
+#include "llvm/MC/TargetRegistry.h"
+#include "llvm/Support/Debug.h"
+#include "llvm/Target/TargetOptions.h"
+#include <optional>
+
+using namespace llvm;
+
+#define DEBUG_TYPE "loongarch-merge-base-offset"
+#define LoongArch_MERGE_BASE_OFFSET_NAME "LoongArch Merge Base Offset"
+
+namespace {
+
+class LoongArchMergeBaseOffsetOpt : public MachineFunctionPass {
+ const LoongArchSubtarget *ST = nullptr;
+ MachineRegisterInfo *MRI;
+
+public:
+ static char ID;
+ bool runOnMachineFunction(MachineFunction &Fn) override;
+ bool detectFoldable(MachineInstr &Hi20, MachineInstr *&Lo12,
+ MachineInstr *&Lo20, MachineInstr *&Hi12,
+ MachineInstr *&Last);
+
+ bool detectAndFoldOffset(MachineInstr &Hi20, MachineInstr &Lo12,
+ MachineInstr *&Lo20, MachineInstr *&Hi12,
+ MachineInstr *&Last);
+ void foldOffset(MachineInstr &Hi20, MachineInstr &Lo12, MachineInstr *&Lo20,
+ MachineInstr *&Hi12, MachineInstr *&Last, MachineInstr &Tail,
+ int64_t Offset);
+ bool foldLargeOffset(MachineInstr &Hi20, MachineInstr &Lo12,
+ MachineInstr *&Lo20, MachineInstr *&Hi12,
+ MachineInstr *&Last, MachineInstr &TailAdd,
+ Register GAReg);
+
+ bool foldIntoMemoryOps(MachineInstr &Hi20, MachineInstr &Lo12,
+ MachineInstr *&Lo20, MachineInstr *&Hi12,
+ MachineInstr *&Last);
+
+ LoongArchMergeBaseOffsetOpt() : MachineFunctionPass(ID) {}
+
+ MachineFunctionProperties getRequiredProperties() const override {
+ return MachineFunctionProperties().set(
+ MachineFunctionProperties::Property::IsSSA);
+ }
+
+ void getAnalysisUsage(AnalysisUsage &AU) const override {
+ AU.setPreservesCFG();
+ MachineFunctionPass::getAnalysisUsage(AU);
+ }
+
+ StringRef getPassName() const override {
+ return LoongArch_MERGE_BASE_OFFSET_NAME;
+ }
+};
+} // end anonymous namespace
+
+char LoongArchMergeBaseOffsetOpt::ID = 0;
+INITIALIZE_PASS(LoongArchMergeBaseOffsetOpt, DEBUG_TYPE,
+ LoongArch_MERGE_BASE_OFFSET_NAME, false, false)
+
+// Detect either of the patterns:
+//
+// 1. (small/medium):
+// pcalau12i vreg1, %pc_hi20(s)
+// addi.d vreg2, vreg1, %pc_lo12(s)
+//
+// 2. (large):
+// pcalau12i vreg1, %pc_hi20(s)
+// addi.d vreg2, $zero, %pc_lo12(s)
+// lu32i.d vreg3, vreg2, %pc64_lo20(s)
+// lu52i.d vreg4, vreg3, %pc64_hi12(s)
+// add.d vreg5, vreg4, vreg1
+
+// The pattern is only accepted if:
+// 1) For small and medium pattern, the first instruction has only one use,
+// which is the ADDI.
+// 2) For large pattern, the first four instructions each have only one use,
+// and the user of the fourth instruction is ADD.
+// 3) The address operands have the appropriate type, reflecting the
+// lowering of a global address or constant pool using the pattern.
+// 4) The offset value in the Global Address or Constant Pool is 0.
+bool LoongArchMergeBaseOffsetOpt::detectFoldable(MachineInstr &Hi20,
+ MachineInstr *&Lo12,
+ MachineInstr *&Lo20,
+ MachineInstr *&Hi12,
+ MachineInstr *&Last) {
+ if (Hi20.getOpcode() != LoongArch::PCALAU12I)
+ return false;
+
+ const MachineOperand &Hi20Op1 = Hi20.getOperand(1);
+ if (Hi20Op1.getTargetFlags() != LoongArchII::MO_PCREL_HI)
+ return false;
+
+ auto isGlobalOrCPIOrBlockAddress = [](const MachineOperand &Op) {
+ return Op.isGlobal() || Op.isCPI() || Op.isBlockAddress();
+ };
+
+ if (!isGlobalOrCPIOrBlockAddress(Hi20Op1) || Hi20Op1.getOffset() != 0)
+ return false;
+
+ Register HiDestReg = Hi20.getOperand(0).getReg();
+ if (!MRI->hasOneUse(HiDestReg))
+ return false;
+
+ MachineInstr *UseInst = &*MRI->use_instr_begin(HiDestReg);
+ if (UseInst->getOpcode() != LoongArch::ADD_D) {
+ Lo12 = UseInst;
+ if ((ST->is64Bit() && Lo12->getOpcode() != LoongArch::ADDI_D) ||
+ (!ST->is64Bit() && Lo12->getOpcode() != LoongArch::ADDI_W))
+ return false;
+ } else {
+ assert(ST->is64Bit());
+ Last = UseInst;
+
+ Register LastOp1Reg = Last->getOperand(1).getReg();
+ if (!LastOp1Reg.isVirtual())
+ return false;
+ Hi12 = MRI->getVRegDef(LastOp1Reg);
+ const MachineOperand &Hi12Op2 = Hi12->getOperand(2);
+ if (Hi12Op2.getTargetFlags() != LoongArchII::MO_PCREL64_HI)
+ return false;
+ if (!isGlobalOrCPIOrBlockAddress(Hi12Op2) || Hi12Op2.getOffset() != 0)
+ return false;
+ if (!MRI->hasOneUse(Hi12->getOperand(0).getReg()))
+ return false;
+
+ Lo20 = MRI->getVRegDef(Hi12->getOperand(1).getReg());
+ const MachineOperand &Lo20Op2 = Lo20->getOperand(2);
+ if (Lo20Op2.getTargetFlags() != LoongArchII::MO_PCREL64_LO)
+ return false;
+ if (!isGlobalOrCPIOrBlockAddress(Lo20Op2) || Lo20Op2.getOffset() != 0)
+ return false;
+ if (!MRI->hasOneUse(Lo20->getOperand(0).getReg()))
+ return false;
+
+ Lo12 = MRI->getVRegDef(Lo20->getOperand(1).getReg());
+ if (!MRI->hasOneUse(Lo12->getOperand(0).getReg()))
+ return false;
+ }
+
+ const MachineOperand &Lo12Op2 = Lo12->getOperand(2);
+ assert(Hi20.getOpcode() == LoongArch::PCALAU12I);
+ if (Lo12Op2.getTargetFlags() != LoongArchII::MO_PCREL_LO ||
+ !(isGlobalOrCPIOrBlockAddress(Lo12Op2) || Lo12Op2.isMCSymbol()) ||
+ Lo12Op2.getOffset() != 0)
+ return false;
+
+ if (Hi20Op1.isGlobal()) {
+ LLVM_DEBUG(dbgs() << " Found lowered global address: "
+ << *Hi20Op1.getGlobal() << "\n");
+ } else if (Hi20Op1.isBlockAddress()) {
+ LLVM_DEBUG(dbgs() << " Found lowered basic address: "
+ << *Hi20Op1.getBlockAddress() << "\n");
+ } else if (Hi20Op1.isCPI()) {
+ LLVM_DEBUG(dbgs() << " Found lowered constant pool: " << Hi20Op1.getIndex()
+ << "\n");
+ }
+
+ return true;
+}
+
+// Update the offset in Hi20, Lo12, Lo20 and Hi12 instructions.
+// Delete the tail instruction and update all the uses to use the
+// output from Last.
+void LoongArchMergeBaseOffsetOpt::foldOffset(
+ MachineInstr &Hi20, MachineInstr &Lo12, MachineInstr *&Lo20,
+ MachineInstr *&Hi12, MachineInstr *&Last, MachineInstr &Tail,
+ int64_t Offset) {
+ assert(isInt<32>(Offset) && "Unexpected offset");
+ // Put the offset back in Hi and the Lo
+ Hi20.getOperand(1).setOffset(Offset);
+ Lo12.getOperand(2).setOffset(Offset);
+ if (Lo20 && Hi12) {
+ Lo20->getOperand(2).setOffset(Offset);
+ Hi12->getOperand(2).setOffset(Offset);
+ }
+ // Delete the tail instruction.
+ MachineInstr *Def = Last ? Last : &Lo12;
+ MRI->constrainRegClass(Def->getOperand(0).getReg(),
+ MRI->getRegClass(Tail.getOperand(0).getReg()));
+ MRI->replaceRegWith(Tail.getOperand(0).getReg(), Def->getOperand(0).getReg());
+ Tail.eraseFromParent();
+ LLVM_DEBUG(dbgs() << " Merged offset " << Offset << " into base.\n"
+ << " " << Hi20 << " " << Lo12;);
+ if (Lo20 && Hi12) {
+ LLVM_DEBUG(dbgs() << " " << *Lo20 << " " << *Hi12;);
+ }
+}
+
+// Detect patterns for large offsets that are passed into an ADD instruction.
+// If the pattern is found, updates the offset in Hi20, Lo12, Lo20 and Hi12
+// instructions and deletes TailAdd and the instructions that produced the
+// offset.
+//
+// Base address lowering is of the form:
+// Hi20: pcalau12i vreg1, %pc_hi20(s)
+// Lo12: addi.d vreg2, vreg1, %pc_lo12(s)
+// / \
+// / \
+// / \
+// / The large offset can be of two forms: \
+// 1) Offset that has non zero bits in lower 2) Offset that has non zero
+// 12 bits and upper 20 bits bits in upper 20 bits only
+// OffsetHi: lu12i.w vreg3, 4
+// OffsetLo: ori voff, vreg3, 188 OffsetHi: lu12i.w voff, 128
+// \ /
+// \ /
+// \ /
+// \ /
+// TailAdd: add.d vreg4, vreg2, voff
+bool LoongArchMergeBaseOffsetOpt::foldLargeOffset(
+ MachineInstr &Hi20, MachineInstr &Lo12, MachineInstr *&Lo20,
+ MachineInstr *&Hi12, MachineInstr *&Last, MachineInstr &TailAdd,
+ Register GAReg) {
+ assert((TailAdd.getOpcode() == LoongArch::ADD_W ||
+ TailAdd.getOpcode() == LoongArch::ADD_D) &&
+ "Expected ADD instruction!");
+ Register Rs = TailAdd.getOperand(1).getReg();
+ Register Rt = TailAdd.getOperand(2).getReg();
+ Register Reg = Rs == GAReg ? Rt : Rs;
+
+ // Can't fold if the register has more than one use.
+ if (!Reg.isVirtual() || !MRI->hasOneUse(Reg))
+ return false;
+ // This can point to an ORI or a LU12I.W:
+ MachineInstr &OffsetTail = *MRI->getVRegDef(Reg);
+ if (OffsetTail.getOpcode() == LoongArch::ORI) {
+ // The offset value has non zero bits in both %hi and %lo parts.
+ // Detect an ORI that feeds from a LU12I.W instruction.
+ MachineOperand &OriImmOp = OffsetTail.getOperand(2);
+ if (OriImmOp.getTargetFlags() != LoongArchII::MO_None)
+ return false;
+ Register OriReg = OffsetTail.getOperand(1).getReg();
+ int64_t OffLo = OriImmOp.getImm();
+
+ // Handle rs1 of ORI is R0.
+ if (OriReg == LoongArch::R0) {
+ LLVM_DEBUG(dbgs() << " Offset Instrs: " << OffsetTail);
+ foldOffset(Hi20, Lo12, Lo20, Hi12, Last, TailAdd, OffLo);
+ OffsetTail.eraseFromParent();
+ return true;
+ }
+
+ MachineInstr &OffsetLu12i = *MRI->getVRegDef(OriReg);
+ MachineOperand &Lu12iImmOp = OffsetLu12i.getOperand(1);
+ if (OffsetLu12i.getOpcode() != LoongArch::LU12I_W ||
+ Lu12iImmOp.getTargetFlags() != LoongArchII::MO_None ||
+ !MRI->hasOneUse(OffsetLu12i.getOperand(0).getReg()))
+ return false;
+ int64_t Offset = SignExtend64<32>(Lu12iImmOp.getImm() << 12);
+ Offset += OffLo;
+ // LU12I.W+ORI sign extends the result.
+ Offset = SignExtend64<32>(Offset);
+ LLVM_DEBUG(dbgs() << " Offset Instrs: " << OffsetTail
+ << " " << OffsetLu12i);
+ foldOffset(Hi20, Lo12, Lo20, Hi12, Last, TailAdd, Offset);
+ OffsetTail.eraseFromParent();
+ OffsetLu12i.eraseFromParent();
+ return true;
+ } else if (OffsetTail.getOpcode() == LoongArch::LU12I_W) {
+ // The offset value has all zero bits in the lower 12 bits. Only LU12I.W
+ // exists.
+ LLVM_DEBUG(dbgs() << " Offset Instr: " << OffsetTail);
+ int64_t Offset = SignExtend64<32>(OffsetTail.getOperand(1).getImm() << 12);
+ foldOffset(Hi20, Lo12, Lo20, Hi12, Last, TailAdd, Offset);
+ OffsetTail.eraseFromParent();
+ return true;
+ }
+ return false;
+}
+
+bool LoongArchMergeBaseOffsetOpt::detectAndFoldOffset(MachineInstr &Hi20,
+ MachineInstr &Lo12,
+ MachineInstr *&Lo20,
+ MachineInstr *&Hi12,
+ MachineInstr *&Last) {
+ Register DestReg =
+ Last ? Last->getOperand(0).getReg() : Lo12.getOperand(0).getReg();
+
+ // Look for arithmetic instructions we can get an offset from.
+ // We might be able to remove the arithmetic instructions by folding the
+ // offset into the PCALAU12I+(ADDI/ADDI+LU32I+LU52I).
+ if (!MRI->hasOneUse(DestReg))
+ return false;
+
+ // DestReg has only one use.
+ MachineInstr &Tail = *MRI->use_instr_begin(DestReg);
+ switch (Tail.getOpcode()) {
+ default:
+ LLVM_DEBUG(dbgs() << "Don't know how to get offset from this instr:"
+ << Tail);
+ break;
+ case LoongArch::ADDI_W:
+ if (ST->is64Bit())
+ return false;
+ [[fallthrough]];
+ case LoongArch::ADDI_D:
+ case LoongArch::ADDU16I_D: {
+ // Offset is simply an immediate operand.
+ int64_t Offset = Tail.getOperand(2).getImm();
+ if (Tail.getOpcode() == LoongArch::ADDU16I_D)
+ Offset = SignExtend64<32>(Offset << 16);
+
+ // We might have two ADDIs in a row.
+ Register TailDestReg = Tail.getOperand(0).getReg();
+ if (MRI->hasOneUse(TailDestReg)) {
+ MachineInstr &TailTail = *MRI->use_instr_begin(TailDestReg);
+ if (ST->is64Bit() && TailTail.getOpcode() == LoongArch::ADDI_W)
+ return false;
+ if (TailTail.getOpcode() == LoongArch::ADDI_W ||
+ TailTail.getOpcode() == LoongArch::ADDI_D) {
+ Offset += TailTail.getOperand(2).getImm();
+ LLVM_DEBUG(dbgs() << " Offset Instrs: " << Tail << TailTail);
+ foldOffset(Hi20, Lo12, Lo20, Hi12, Last, TailTail, Offset);
+ Tail.eraseFromParent();
+ return true;
+ }
+ }
+
+ LLVM_DEBUG(dbgs() << " Offset Instr: " << Tail);
+ foldOffset(Hi20, Lo12, Lo20, Hi12, Last, Tail, Offset);
+ return true;
+ }
+ case LoongArch::ADD_W:
+ if (ST->is64Bit())
+ return false;
+ [[fallthrough]];
+ case LoongArch::ADD_D:
+ // The offset is too large to fit in the immediate field of ADDI.
+ // This can be in two forms:
+ // 1) LU12I.W hi_offset followed by:
+ // ORI lo_offset
+ // This happens in case the offset has non zero bits in
+ // both hi 20 and lo 12 bits.
+ // 2) LU12I.W (offset20)
+ // This happens in case the lower 12 bits of the offset are zeros.
+ return foldLargeOffset(Hi20, Lo12, Lo20, Hi12, Last, Tail, DestReg);
+ break;
+ }
+
+ return false;
+}
+
+// Memory access opcode mapping for transforms.
+static unsigned getNewOpc(unsigned Op, bool isLarge) {
+ switch (Op) {
+ case LoongArch::LD_B:
+ return isLarge ? LoongArch::LDX_B : LoongArch::LD_B;
+ case LoongArch::LD_H:
+ return isLarge ? LoongArch::LDX_H : LoongArch::LD_H;
+ case LoongArch::LD_W:
+ case LoongArch::LDPTR_W:
+ return isLarge ? LoongArch::LDX_W : LoongArch::LD_W;
+ case LoongArch::LD_D:
+ case LoongArch::LDPTR_D:
+ return isLarge ? LoongArch::LDX_D : LoongArch::LD_D;
+ case LoongArch::LD_BU:
+ return isLarge ? LoongArch::LDX_BU : LoongArch::LD_BU;
+ case LoongArch::LD_HU:
+ return isLarge ? LoongArch::LDX_HU : LoongArch::LD_HU;
+ case LoongArch::LD_WU:
+ return isLarge ? LoongArch::LDX_WU : LoongArch::LD_WU;
+ case LoongArch::FLD_S:
+ return isLarge ? LoongArch::FLDX_S : LoongArch::FLD_S;
+ case LoongArch::FLD_D:
+ return isLarge ? LoongArch::FLDX_D : LoongArch::FLD_D;
+ case LoongArch::ST_B:
+ return isLarge ? LoongArch::STX_B : LoongArch::ST_B;
+ case LoongArch::ST_H:
+ return isLarge ? LoongArch::STX_H : LoongArch::ST_H;
+ case LoongArch::ST_W:
+ case LoongArch::STPTR_W:
+ return isLarge ? LoongArch::STX_W : LoongArch::ST_W;
+ case LoongArch::ST_D:
+ case LoongArch::STPTR_D:
+ return isLarge ? LoongArch::STX_D : LoongArch::ST_D;
+ case LoongArch::FST_S:
+ return isLarge ? LoongArch::FSTX_S : LoongArch::FST_S;
+ case LoongArch::FST_D:
+ return isLarge ? LoongArch::FSTX_D : LoongArch::FST_D;
+ default:
+ llvm_unreachable("Unexpected opcode for replacement");
+ }
+}
+
+bool LoongArchMergeBaseOffsetOpt::foldIntoMemoryOps(MachineInstr &Hi20,
+ MachineInstr &Lo12,
+ MachineInstr *&Lo20,
+ MachineInstr *&Hi12,
+ MachineInstr *&Last) {
+ Register DestReg =
+ Last ? Last->getOperand(0).getReg() : Lo12.getOperand(0).getReg();
+
+ // If all the uses are memory ops with the same offset, we can transform:
+ //
+ // 1. (small/medium):
+ // pcalau12i vreg1, %pc_hi20(s)
+ // addi.d vreg2, vreg1, %pc_lo12(s)
+ // ld.w vreg3, 8(vreg2)
+ //
+ // =>
+ //
+ // pcalau12i vreg1, %pc_hi20(s+8)
+ // ld.w vreg3, vreg1, %pc_lo12(s+8)(vreg1)
+ //
+ // 2. (large):
+ // pcalau12i vreg1, %pc_hi20(s)
+ // addi.d vreg2, $zero, %pc_lo12(s)
+ // lu32i.d vreg3, vreg2, %pc64_lo20(s)
+ // lu52i.d vreg4, vreg3, %pc64_hi12(s)
+ // add.d vreg5, vreg4, vreg1
+ // ld.w vreg6, 8(vreg5)
+ //
+ // =>
+ //
+ // pcalau12i vreg1, %pc_hi20(s+8)
+ // addi.d vreg2, $zero, %pc_lo12(s+8)
+ // lu32i.d vreg3, vreg2, %pc64_lo20(s+8)
+ // lu52i.d vreg4, vreg3, %pc64_hi12(s+8)
+ // ldx.w vreg6, vreg4, vreg1
+
+ std::optional<int64_t> CommonOffset;
+ DenseMap<const MachineInstr *, SmallVector<unsigned>>
+ InlineAsmMemoryOpIndexesMap;
+ for (const MachineInstr &UseMI : MRI->use_instructions(DestReg)) {
+ switch (UseMI.getOpcode()) {
+ default:
+ LLVM_DEBUG(dbgs() << "Not a load or store instruction: " << UseMI);
+ return false;
+ case LoongArch::LD_B:
+ case LoongArch::LD_H:
+ case LoongArch::LD_W:
+ case LoongArch::LD_D:
+ case LoongArch::LD_BU:
+ case LoongArch::LD_HU:
+ case LoongArch::LD_WU:
+ case LoongArch::LDPTR_W:
+ case LoongArch::LDPTR_D:
+ case LoongArch::FLD_S:
+ case LoongArch::FLD_D:
+ case LoongArch::ST_B:
+ case LoongArch::ST_H:
+ case LoongArch::ST_W:
+ case LoongArch::ST_D:
+ case LoongArch::STPTR_W:
+ case LoongArch::STPTR_D:
+ case LoongArch::FST_S:
+ case LoongArch::FST_D: {
+ if (UseMI.getOperand(1).isFI())
+ return false;
+ // Register defined by Lo should not be the value register.
+ if (DestReg == UseMI.getOperand(0).getReg())
+ return false;
+ assert(DestReg == UseMI.getOperand(1).getReg() &&
+ "Expected base address use");
+ // All load/store instructions must use the same offset.
+ int64_t Offset = UseMI.getOperand(2).getImm();
+ if (CommonOffset && Offset != CommonOffset)
+ return false;
+ CommonOffset = Offset;
+ break;
+ }
+ case LoongArch::INLINEASM:
+ case LoongArch::INLINEASM_BR: {
+ // We can't do this for large pattern.
+ if (Last)
+ return false;
+ SmallVector<unsigned> InlineAsmMemoryOpIndexes;
+ unsigned NumOps = 0;
+ for (unsigned I = InlineAsm::MIOp_FirstOperand;
+ I < UseMI.getNumOperands(); I += 1 + NumOps) {
+ const MachineOperand &FlagsMO = UseMI.getOperand(I);
+ // Should be an imm.
+ if (!FlagsMO.isImm())
+ continue;
+
+ const InlineAsm::Flag Flags(FlagsMO.getImm());
+ NumOps = Flags.getNumOperandRegisters();
+
+ // Memory constraints have two operands.
+ if (NumOps != 2 || !Flags.isMemKind()) {
+ // If the register is used by something other than a memory contraint,
+ // we should not fold.
+ for (unsigned J = 0; J < NumOps; ++J) {
+ const MachineOperand &MO = UseMI.getOperand(I + 1 + J);
+ if (MO.isReg() && MO.getReg() == DestReg)
+ return false;
+ }
+ continue;
+ }
+
+ // We can only do this for constraint m.
+ if (Flags.getMemoryConstraintID() != InlineAsm::ConstraintCode::m)
+ return false;
+
+ const MachineOperand &AddrMO = UseMI.getOperand(I + 1);
+ if (!AddrMO.isReg() || AddrMO.getReg() != DestReg)
+ continue;
+
+ const MachineOperand &OffsetMO = UseMI.getOperand(I + 2);
+ if (!OffsetMO.isImm())
+ continue;
+
+ // All inline asm memory operands must use the same offset.
+ int64_t Offset = OffsetMO.getImm();
+ if (CommonOffset && Offset != CommonOffset)
+ return false;
+ CommonOffset = Offset;
+ InlineAsmMemoryOpIndexes.push_back(I + 1);
+ }
+ InlineAsmMemoryOpIndexesMap.insert(
+ std::make_pair(&UseMI, InlineAsmMemoryOpIndexes));
+ break;
+ }
+ }
+ }
+
+ // We found a common offset.
+ // Update the offsets in global address lowering.
+ // We may have already folded some arithmetic so we need to add to any
+ // existing offset.
+ int64_t NewOffset = Hi20.getOperand(1).getOffset() + *CommonOffset;
+ // LA32 ignores the upper 32 bits.
+ if (!ST->is64Bit())
+ NewOffset = SignExtend64<32>(NewOffset);
+ // We can only fold simm32 offsets.
+ if (!isInt<32>(NewOffset))
+ return false;
+
+ Hi20.getOperand(1).setOffset(NewOffset);
+ MachineOperand &ImmOp = Lo12.getOperand(2);
+ ImmOp.setOffset(NewOffset);
+ if (Lo20 && Hi12) {
+ Lo20->getOperand(2).setOffset(NewOffset);
+ Hi12->getOperand(2).setOffset(NewOffset);
+ }
+
+ // Update the immediate in the load/store instructions to add the offset.
+ const LoongArchInstrInfo &TII = *ST->getInstrInfo();
+ for (MachineInstr &UseMI :
+ llvm::make_early_inc_range(MRI->use_instructions(DestReg))) {
+ if (UseMI.getOpcode() == LoongArch::INLINEASM ||
+ UseMI.getOpcode() == LoongArch::INLINEASM_BR) {
+ auto &InlineAsmMemoryOpIndexes = InlineAsmMemoryOpIndexesMap[&UseMI];
+ for (unsigned I : InlineAsmMemoryOpIndexes) {
+ MachineOperand &MO = UseMI.getOperand(I + 1);
+ switch (ImmOp.getType()) {
+ case MachineOperand::MO_GlobalAddress:
+ MO.ChangeToGA(ImmOp.getGlobal(), ImmOp.getOffset(),
+ ImmOp.getTargetFlags());
+ break;
+ case MachineOperand::MO_MCSymbol:
+ MO.ChangeToMCSymbol(ImmOp.getMCSymbol(), ImmOp.getTargetFlags());
+ MO.setOffset(ImmOp.getOffset());
+ break;
+ case MachineOperand::MO_BlockAddress:
+ MO.ChangeToBA(ImmOp.getBlockAddress(), ImmOp.getOffset(),
+ ImmOp.getTargetFlags());
+ break;
+ default:
+ report_fatal_error("unsupported machine operand type");
+ break;
+ }
+ }
+ } else {
+ UseMI.setDesc(TII.get(getNewOpc(UseMI.getOpcode(), Last)));
+ if (Last) {
+ UseMI.removeOperand(2);
+ UseMI.removeOperand(1);
+ UseMI.addOperand(Last->getOperand(1));
+ UseMI.addOperand(Last->getOperand(2));
+ UseMI.getOperand(1).setIsKill(false);
+ UseMI.getOperand(2).setIsKill(false);
+ } else {
+ UseMI.removeOperand(2);
+ UseMI.addOperand(ImmOp);
+ }
+ }
+ }
+
+ if (Last) {
+ Last->eraseFromParent();
+ return true;
+ }
+
+ MRI->replaceRegWith(Lo12.getOperand(0).getReg(), Hi20.getOperand(0).getReg());
+ Lo12.eraseFromParent();
+ return true;
+}
+
+bool LoongArchMergeBaseOffsetOpt::runOnMachineFunction(MachineFunction &Fn) {
+ if (skipFunction(Fn.getFunction()))
+ return false;
+
+ ST = &Fn.getSubtarget<LoongArchSubtarget>();
+
+ bool MadeChange = false;
+ MRI = &Fn.getRegInfo();
+ for (MachineBasicBlock &MBB : Fn) {
+ LLVM_DEBUG(dbgs() << "MBB: " << MBB.getName() << "\n");
+ for (MachineInstr &Hi20 : MBB) {
+ MachineInstr *Lo12 = nullptr;
+ MachineInstr *Lo20 = nullptr;
+ MachineInstr *Hi12 = nullptr;
+ MachineInstr *Last = nullptr;
+ if (!detectFoldable(Hi20, Lo12, Lo20, Hi12, Last))
+ continue;
+ MadeChange |= detectAndFoldOffset(Hi20, *Lo12, Lo20, Hi12, Last);
+ MadeChange |= foldIntoMemoryOps(Hi20, *Lo12, Lo20, Hi12, Last);
+ }
+ }
+
+ return MadeChange;
+}
+
+/// Returns an instance of the Merge Base Offset Optimization pass.
+FunctionPass *llvm::createLoongArchMergeBaseOffsetOptPass() {
+ return new LoongArchMergeBaseOffsetOpt();
+}
diff --git a/llvm/lib/Target/LoongArch/LoongArchTargetMachine.cpp b/llvm/lib/Target/LoongArch/LoongArchTargetMachine.cpp
index e83fc08696aea5..4401aadfe78485 100644
--- a/llvm/lib/Target/LoongArch/LoongArchTargetMachine.cpp
+++ b/llvm/lib/Target/LoongArch/LoongArchTargetMachine.cpp
@@ -35,6 +35,7 @@ extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeLoongArchTarget() {
RegisterTargetMachine<LoongArchTargetMachine> Y(getTheLoongArch64Target());
auto *PR = PassRegistry::getPassRegistry();
initializeLoongArchDeadRegisterDefinitionsPass(*PR);
+ initializeLoongArchMergeBaseOffsetOptPass(*PR);
initializeLoongArchOptWInstrsPass(*PR);
initializeLoongArchPreRAExpandPseudoPass(*PR);
initializeLoongArchDAGToDAGISelLegacyPass(*PR);
@@ -216,6 +217,8 @@ void LoongArchPassConfig::addMachineSSAOptimization() {
void LoongArchPassConfig::addPreRegAlloc() {
addPass(createLoongArchPreRAExpandPseudoPass());
+ if (TM->getOptLevel() != CodeGenOptLevel::None)
+ addPass(createLoongArchMergeBaseOffsetOptPass());
}
bool LoongArchPassConfig::addRegAssignAndRewriteFast() {
diff --git a/llvm/test/CodeGen/LoongArch/block-address.ll b/llvm/test/CodeGen/LoongArch/block-address.ll
index eaba81f3563d7f..114cbb73a51259 100644
--- a/llvm/test/CodeGen/LoongArch/block-address.ll
+++ b/llvm/test/CodeGen/LoongArch/block-address.ll
@@ -8,11 +8,10 @@ define void @test_blockaddress() nounwind {
; LA32-LABEL: test_blockaddress:
; LA32: # %bb.0:
; LA32-NEXT: pcalau12i $a0, %pc_hi20(addr)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(addr)
; LA32-NEXT: pcalau12i $a1, %pc_hi20(.Ltmp0)
; LA32-NEXT: addi.w $a1, $a1, %pc_lo12(.Ltmp0)
-; LA32-NEXT: st.w $a1, $a0, 0
-; LA32-NEXT: ld.w $a0, $a0, 0
+; LA32-NEXT: st.w $a1, $a0, %pc_lo12(addr)
+; LA32-NEXT: ld.w $a0, $a0, %pc_lo12(addr)
; LA32-NEXT: jr $a0
; LA32-NEXT: .Ltmp0: # Block address taken
; LA32-NEXT: .LBB0_1: # %block
@@ -21,11 +20,10 @@ define void @test_blockaddress() nounwind {
; LA64-LABEL: test_blockaddress:
; LA64: # %bb.0:
; LA64-NEXT: pcalau12i $a0, %pc_hi20(addr)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(addr)
; LA64-NEXT: pcalau12i $a1, %pc_hi20(.Ltmp0)
; LA64-NEXT: addi.d $a1, $a1, %pc_lo12(.Ltmp0)
-; LA64-NEXT: st.d $a1, $a0, 0
-; LA64-NEXT: ld.d $a0, $a0, 0
+; LA64-NEXT: st.d $a1, $a0, %pc_lo12(addr)
+; LA64-NEXT: ld.d $a0, $a0, %pc_lo12(addr)
; LA64-NEXT: jr $a0
; LA64-NEXT: .Ltmp0: # Block address taken
; LA64-NEXT: .LBB0_1: # %block
diff --git a/llvm/test/CodeGen/LoongArch/calling-conv-lp64d.ll b/llvm/test/CodeGen/LoongArch/calling-conv-lp64d.ll
index cc6ba057019c65..34fbec03c535b0 100644
--- a/llvm/test/CodeGen/LoongArch/calling-conv-lp64d.ll
+++ b/llvm/test/CodeGen/LoongArch/calling-conv-lp64d.ll
@@ -64,26 +64,19 @@ define i64 @caller_double_in_gpr_exhausted_fprs() nounwind {
; CHECK-NEXT: addi.d $sp, $sp, -16
; CHECK-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
; CHECK-NEXT: pcalau12i $a0, %pc_hi20(.LCPI3_0)
-; CHECK-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI3_0)
-; CHECK-NEXT: fld.d $fa1, $a0, 0
+; CHECK-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI3_0)
; CHECK-NEXT: pcalau12i $a0, %pc_hi20(.LCPI3_1)
-; CHECK-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI3_1)
-; CHECK-NEXT: fld.d $fa2, $a0, 0
+; CHECK-NEXT: fld.d $fa2, $a0, %pc_lo12(.LCPI3_1)
; CHECK-NEXT: pcalau12i $a0, %pc_hi20(.LCPI3_2)
-; CHECK-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI3_2)
-; CHECK-NEXT: fld.d $fa3, $a0, 0
+; CHECK-NEXT: fld.d $fa3, $a0, %pc_lo12(.LCPI3_2)
; CHECK-NEXT: pcalau12i $a0, %pc_hi20(.LCPI3_3)
-; CHECK-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI3_3)
-; CHECK-NEXT: fld.d $fa4, $a0, 0
+; CHECK-NEXT: fld.d $fa4, $a0, %pc_lo12(.LCPI3_3)
; CHECK-NEXT: pcalau12i $a0, %pc_hi20(.LCPI3_4)
-; CHECK-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI3_4)
-; CHECK-NEXT: fld.d $fa5, $a0, 0
+; CHECK-NEXT: fld.d $fa5, $a0, %pc_lo12(.LCPI3_4)
; CHECK-NEXT: pcalau12i $a0, %pc_hi20(.LCPI3_5)
-; CHECK-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI3_5)
-; CHECK-NEXT: fld.d $fa6, $a0, 0
+; CHECK-NEXT: fld.d $fa6, $a0, %pc_lo12(.LCPI3_5)
; CHECK-NEXT: pcalau12i $a0, %pc_hi20(.LCPI3_6)
-; CHECK-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI3_6)
-; CHECK-NEXT: fld.d $fa7, $a0, 0
+; CHECK-NEXT: fld.d $fa7, $a0, %pc_lo12(.LCPI3_6)
; CHECK-NEXT: addi.d $a0, $zero, 1
; CHECK-NEXT: movgr2fr.d $fa0, $a0
; CHECK-NEXT: ffint.d.l $fa0, $fa0
diff --git a/llvm/test/CodeGen/LoongArch/double-imm.ll b/llvm/test/CodeGen/LoongArch/double-imm.ll
index 3e89db3ec5c8cc..8d50b27907d72b 100644
--- a/llvm/test/CodeGen/LoongArch/double-imm.ll
+++ b/llvm/test/CodeGen/LoongArch/double-imm.ll
@@ -36,15 +36,13 @@ define double @f64_constant_pi() nounwind {
; LA32-LABEL: f64_constant_pi:
; LA32: # %bb.0:
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI2_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI2_0)
-; LA32-NEXT: fld.d $fa0, $a0, 0
+; LA32-NEXT: fld.d $fa0, $a0, %pc_lo12(.LCPI2_0)
; LA32-NEXT: ret
;
; LA64-LABEL: f64_constant_pi:
; LA64: # %bb.0:
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI2_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI2_0)
-; LA64-NEXT: fld.d $fa0, $a0, 0
+; LA64-NEXT: fld.d $fa0, $a0, %pc_lo12(.LCPI2_0)
; LA64-NEXT: ret
ret double 3.1415926535897931159979634685441851615905761718750
}
diff --git a/llvm/test/CodeGen/LoongArch/float-imm-vldi.ll b/llvm/test/CodeGen/LoongArch/float-imm-vldi.ll
index 0c6856bafd23d7..f228efb6b65882 100644
--- a/llvm/test/CodeGen/LoongArch/float-imm-vldi.ll
+++ b/llvm/test/CodeGen/LoongArch/float-imm-vldi.ll
@@ -6,21 +6,17 @@ define dso_local { float, double } @test1() {
; LA32-LABEL: test1:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI0_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI0_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI0_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI0_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI0_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI0_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test1:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI0_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI0_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI0_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI0_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI0_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI0_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 2.0000000000, double 2.0000000000 }
@@ -30,21 +26,17 @@ define dso_local { float, double } @test2() {
; LA32-LABEL: test2:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI1_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI1_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI1_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI1_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI1_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI1_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test2:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI1_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI1_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI1_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI1_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI1_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI1_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 2.1250000000, double 2.1250000000 }
@@ -54,21 +46,17 @@ define dso_local { float, double } @test3() {
; LA32-LABEL: test3:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI2_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI2_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI2_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI2_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI2_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI2_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test3:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI2_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI2_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI2_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI2_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI2_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI2_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 2.2500000000, double 2.2500000000 }
@@ -78,21 +66,17 @@ define dso_local { float, double } @test4() {
; LA32-LABEL: test4:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI3_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI3_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI3_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI3_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI3_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI3_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test4:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI3_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI3_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI3_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI3_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI3_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI3_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 2.3750000000, double 2.3750000000 }
@@ -102,21 +86,17 @@ define dso_local { float, double } @test5() {
; LA32-LABEL: test5:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI4_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI4_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI4_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI4_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI4_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI4_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test5:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI4_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI4_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI4_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI4_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI4_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI4_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 2.5000000000, double 2.5000000000 }
@@ -126,21 +106,17 @@ define dso_local { float, double } @test6() {
; LA32-LABEL: test6:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI5_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI5_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI5_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI5_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI5_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI5_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test6:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI5_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI5_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI5_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI5_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI5_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI5_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 2.6250000000, double 2.6250000000 }
@@ -150,21 +126,17 @@ define dso_local { float, double } @test7() {
; LA32-LABEL: test7:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI6_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI6_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI6_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI6_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI6_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI6_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test7:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI6_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI6_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI6_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI6_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI6_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI6_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 2.7500000000, double 2.7500000000 }
@@ -174,21 +146,17 @@ define dso_local { float, double } @test8() {
; LA32-LABEL: test8:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI7_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI7_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI7_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI7_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI7_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI7_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test8:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI7_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI7_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI7_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI7_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI7_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI7_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 2.8750000000, double 2.8750000000 }
@@ -198,21 +166,17 @@ define dso_local { float, double } @test9() {
; LA32-LABEL: test9:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI8_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI8_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI8_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI8_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI8_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI8_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test9:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI8_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI8_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI8_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI8_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI8_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI8_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 3.0000000000, double 3.0000000000 }
@@ -222,21 +186,17 @@ define dso_local { float, double } @test10() {
; LA32-LABEL: test10:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI9_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI9_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI9_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI9_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI9_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI9_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test10:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI9_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI9_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI9_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI9_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI9_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI9_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 3.1250000000, double 3.1250000000 }
@@ -246,21 +206,17 @@ define dso_local { float, double } @test11() {
; LA32-LABEL: test11:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI10_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI10_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI10_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI10_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI10_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI10_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test11:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI10_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI10_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI10_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI10_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI10_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI10_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 3.2500000000, double 3.2500000000 }
@@ -270,21 +226,17 @@ define dso_local { float, double } @test12() {
; LA32-LABEL: test12:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI11_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI11_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI11_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI11_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI11_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI11_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test12:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI11_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI11_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI11_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI11_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI11_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI11_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 3.3750000000, double 3.3750000000 }
@@ -294,21 +246,17 @@ define dso_local { float, double } @test13() {
; LA32-LABEL: test13:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI12_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI12_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI12_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI12_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI12_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI12_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test13:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI12_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI12_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI12_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI12_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI12_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI12_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 3.5000000000, double 3.5000000000 }
@@ -318,21 +266,17 @@ define dso_local { float, double } @test14() {
; LA32-LABEL: test14:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI13_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI13_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI13_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI13_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI13_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI13_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test14:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI13_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI13_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI13_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI13_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI13_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI13_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 3.6250000000, double 3.6250000000 }
@@ -342,21 +286,17 @@ define dso_local { float, double } @test15() {
; LA32-LABEL: test15:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI14_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI14_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI14_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI14_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI14_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI14_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test15:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI14_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI14_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI14_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI14_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI14_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI14_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 3.7500000000, double 3.7500000000 }
@@ -366,21 +306,17 @@ define dso_local { float, double } @test16() {
; LA32-LABEL: test16:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI15_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI15_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI15_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI15_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI15_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI15_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test16:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI15_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI15_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI15_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI15_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI15_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI15_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 3.8750000000, double 3.8750000000 }
@@ -390,21 +326,17 @@ define dso_local { float, double } @test17() {
; LA32-LABEL: test17:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI16_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI16_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI16_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI16_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI16_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI16_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test17:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI16_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI16_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI16_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI16_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI16_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI16_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 4.0000000000, double 4.0000000000 }
@@ -414,21 +346,17 @@ define dso_local { float, double } @test18() {
; LA32-LABEL: test18:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI17_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI17_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI17_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI17_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI17_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI17_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test18:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI17_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI17_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI17_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI17_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI17_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI17_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 4.2500000000, double 4.2500000000 }
@@ -438,21 +366,17 @@ define dso_local { float, double } @test19() {
; LA32-LABEL: test19:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI18_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI18_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI18_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI18_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI18_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI18_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test19:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI18_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI18_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI18_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI18_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI18_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI18_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 4.5000000000, double 4.5000000000 }
@@ -462,21 +386,17 @@ define dso_local { float, double } @test20() {
; LA32-LABEL: test20:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI19_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI19_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI19_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI19_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI19_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI19_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test20:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI19_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI19_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI19_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI19_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI19_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI19_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 4.7500000000, double 4.7500000000 }
@@ -486,21 +406,17 @@ define dso_local { float, double } @test21() {
; LA32-LABEL: test21:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI20_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI20_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI20_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI20_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI20_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI20_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test21:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI20_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI20_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI20_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI20_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI20_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI20_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 5.0000000000, double 5.0000000000 }
@@ -510,21 +426,17 @@ define dso_local { float, double } @test22() {
; LA32-LABEL: test22:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI21_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI21_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI21_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI21_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI21_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI21_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test22:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI21_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI21_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI21_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI21_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI21_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI21_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 5.2500000000, double 5.2500000000 }
@@ -534,21 +446,17 @@ define dso_local { float, double } @test23() {
; LA32-LABEL: test23:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI22_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI22_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI22_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI22_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI22_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI22_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test23:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI22_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI22_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI22_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI22_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI22_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI22_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 5.5000000000, double 5.5000000000 }
@@ -558,21 +466,17 @@ define dso_local { float, double } @test24() {
; LA32-LABEL: test24:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI23_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI23_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI23_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI23_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI23_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI23_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test24:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI23_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI23_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI23_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI23_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI23_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI23_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 5.7500000000, double 5.7500000000 }
@@ -582,21 +486,17 @@ define dso_local { float, double } @test25() {
; LA32-LABEL: test25:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI24_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI24_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI24_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI24_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI24_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI24_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test25:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI24_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI24_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI24_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI24_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI24_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI24_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 6.0000000000, double 6.0000000000 }
@@ -606,21 +506,17 @@ define dso_local { float, double } @test26() {
; LA32-LABEL: test26:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI25_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI25_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI25_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI25_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI25_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI25_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test26:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI25_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI25_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI25_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI25_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI25_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI25_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 6.2500000000, double 6.2500000000 }
@@ -630,21 +526,17 @@ define dso_local { float, double } @test27() {
; LA32-LABEL: test27:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI26_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI26_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI26_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI26_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI26_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI26_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test27:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI26_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI26_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI26_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI26_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI26_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI26_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 6.5000000000, double 6.5000000000 }
@@ -654,21 +546,17 @@ define dso_local { float, double } @test28() {
; LA32-LABEL: test28:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI27_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI27_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI27_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI27_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI27_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI27_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test28:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI27_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI27_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI27_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI27_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI27_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI27_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 6.7500000000, double 6.7500000000 }
@@ -678,21 +566,17 @@ define dso_local { float, double } @test29() {
; LA32-LABEL: test29:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI28_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI28_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI28_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI28_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI28_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI28_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test29:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI28_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI28_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI28_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI28_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI28_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI28_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 7.0000000000, double 7.0000000000 }
@@ -702,21 +586,17 @@ define dso_local { float, double } @test30() {
; LA32-LABEL: test30:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI29_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI29_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI29_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI29_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI29_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI29_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test30:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI29_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI29_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI29_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI29_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI29_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI29_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 7.2500000000, double 7.2500000000 }
@@ -726,21 +606,17 @@ define dso_local { float, double } @test31() {
; LA32-LABEL: test31:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI30_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI30_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI30_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI30_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI30_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI30_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test31:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI30_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI30_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI30_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI30_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI30_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI30_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 7.5000000000, double 7.5000000000 }
@@ -750,21 +626,17 @@ define dso_local { float, double } @test32() {
; LA32-LABEL: test32:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI31_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI31_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI31_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI31_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI31_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI31_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test32:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI31_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI31_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI31_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI31_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI31_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI31_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 7.7500000000, double 7.7500000000 }
@@ -774,21 +646,17 @@ define dso_local { float, double } @test33() {
; LA32-LABEL: test33:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI32_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI32_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI32_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI32_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI32_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI32_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test33:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI32_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI32_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI32_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI32_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI32_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI32_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 8.0000000000, double 8.0000000000 }
@@ -798,21 +666,17 @@ define dso_local { float, double } @test34() {
; LA32-LABEL: test34:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI33_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI33_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI33_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI33_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI33_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI33_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test34:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI33_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI33_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI33_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI33_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI33_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI33_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 8.5000000000, double 8.5000000000 }
@@ -822,21 +686,17 @@ define dso_local { float, double } @test35() {
; LA32-LABEL: test35:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI34_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI34_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI34_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI34_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI34_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI34_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test35:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI34_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI34_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI34_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI34_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI34_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI34_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 9.0000000000, double 9.0000000000 }
@@ -846,21 +706,17 @@ define dso_local { float, double } @test36() {
; LA32-LABEL: test36:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI35_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI35_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI35_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI35_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI35_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI35_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test36:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI35_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI35_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI35_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI35_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI35_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI35_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 9.5000000000, double 9.5000000000 }
@@ -870,21 +726,17 @@ define dso_local { float, double } @test37() {
; LA32-LABEL: test37:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI36_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI36_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI36_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI36_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI36_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI36_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test37:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI36_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI36_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI36_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI36_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI36_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI36_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 10.0000000000, double 10.0000000000 }
@@ -894,21 +746,17 @@ define dso_local { float, double } @test38() {
; LA32-LABEL: test38:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI37_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI37_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI37_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI37_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI37_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI37_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test38:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI37_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI37_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI37_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI37_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI37_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI37_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 10.5000000000, double 10.5000000000 }
@@ -918,21 +766,17 @@ define dso_local { float, double } @test39() {
; LA32-LABEL: test39:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI38_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI38_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI38_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI38_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI38_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI38_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test39:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI38_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI38_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI38_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI38_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI38_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI38_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 11.0000000000, double 11.0000000000 }
@@ -942,21 +786,17 @@ define dso_local { float, double } @test40() {
; LA32-LABEL: test40:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI39_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI39_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI39_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI39_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI39_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI39_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test40:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI39_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI39_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI39_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI39_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI39_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI39_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 11.5000000000, double 11.5000000000 }
@@ -966,21 +806,17 @@ define dso_local { float, double } @test41() {
; LA32-LABEL: test41:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI40_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI40_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI40_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI40_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI40_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI40_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test41:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI40_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI40_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI40_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI40_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI40_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI40_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 12.0000000000, double 12.0000000000 }
@@ -990,21 +826,17 @@ define dso_local { float, double } @test42() {
; LA32-LABEL: test42:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI41_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI41_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI41_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI41_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI41_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI41_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test42:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI41_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI41_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI41_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI41_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI41_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI41_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 12.5000000000, double 12.5000000000 }
@@ -1014,21 +846,17 @@ define dso_local { float, double } @test43() {
; LA32-LABEL: test43:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI42_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI42_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI42_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI42_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI42_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI42_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test43:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI42_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI42_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI42_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI42_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI42_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI42_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 13.0000000000, double 13.0000000000 }
@@ -1038,21 +866,17 @@ define dso_local { float, double } @test44() {
; LA32-LABEL: test44:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI43_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI43_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI43_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI43_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI43_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI43_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test44:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI43_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI43_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI43_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI43_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI43_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI43_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 13.5000000000, double 13.5000000000 }
@@ -1062,21 +886,17 @@ define dso_local { float, double } @test45() {
; LA32-LABEL: test45:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI44_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI44_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI44_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI44_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI44_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI44_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test45:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI44_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI44_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI44_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI44_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI44_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI44_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 14.0000000000, double 14.0000000000 }
@@ -1086,21 +906,17 @@ define dso_local { float, double } @test46() {
; LA32-LABEL: test46:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI45_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI45_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI45_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI45_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI45_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI45_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test46:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI45_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI45_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI45_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI45_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI45_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI45_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 14.5000000000, double 14.5000000000 }
@@ -1110,21 +926,17 @@ define dso_local { float, double } @test47() {
; LA32-LABEL: test47:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI46_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI46_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI46_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI46_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI46_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI46_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test47:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI46_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI46_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI46_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI46_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI46_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI46_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 15.0000000000, double 15.0000000000 }
@@ -1134,21 +946,17 @@ define dso_local { float, double } @test48() {
; LA32-LABEL: test48:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI47_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI47_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI47_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI47_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI47_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI47_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test48:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI47_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI47_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI47_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI47_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI47_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI47_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 15.5000000000, double 15.5000000000 }
@@ -1158,21 +966,17 @@ define dso_local { float, double } @test49() {
; LA32-LABEL: test49:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI48_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI48_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI48_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI48_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI48_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI48_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test49:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI48_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI48_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI48_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI48_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI48_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI48_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 16.0000000000, double 16.0000000000 }
@@ -1182,21 +986,17 @@ define dso_local { float, double } @test50() {
; LA32-LABEL: test50:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI49_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI49_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI49_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI49_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI49_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI49_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test50:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI49_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI49_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI49_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI49_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI49_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI49_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 17.0000000000, double 17.0000000000 }
@@ -1206,21 +1006,17 @@ define dso_local { float, double } @test51() {
; LA32-LABEL: test51:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI50_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI50_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI50_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI50_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI50_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI50_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test51:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI50_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI50_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI50_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI50_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI50_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI50_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 18.0000000000, double 18.0000000000 }
@@ -1230,21 +1026,17 @@ define dso_local { float, double } @test52() {
; LA32-LABEL: test52:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI51_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI51_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI51_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI51_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI51_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI51_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test52:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI51_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI51_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI51_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI51_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI51_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI51_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 19.0000000000, double 19.0000000000 }
@@ -1254,21 +1046,17 @@ define dso_local { float, double } @test53() {
; LA32-LABEL: test53:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI52_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI52_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI52_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI52_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI52_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI52_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test53:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI52_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI52_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI52_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI52_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI52_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI52_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 20.0000000000, double 20.0000000000 }
@@ -1278,21 +1066,17 @@ define dso_local { float, double } @test54() {
; LA32-LABEL: test54:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI53_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI53_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI53_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI53_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI53_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI53_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test54:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI53_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI53_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI53_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI53_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI53_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI53_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 21.0000000000, double 21.0000000000 }
@@ -1302,21 +1086,17 @@ define dso_local { float, double } @test55() {
; LA32-LABEL: test55:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI54_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI54_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI54_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI54_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI54_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI54_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test55:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI54_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI54_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI54_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI54_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI54_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI54_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 22.0000000000, double 22.0000000000 }
@@ -1326,21 +1106,17 @@ define dso_local { float, double } @test56() {
; LA32-LABEL: test56:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI55_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI55_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI55_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI55_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI55_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI55_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test56:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI55_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI55_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI55_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI55_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI55_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI55_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 23.0000000000, double 23.0000000000 }
@@ -1350,21 +1126,17 @@ define dso_local { float, double } @test57() {
; LA32-LABEL: test57:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI56_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI56_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI56_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI56_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI56_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI56_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test57:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI56_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI56_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI56_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI56_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI56_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI56_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 24.0000000000, double 24.0000000000 }
@@ -1374,21 +1146,17 @@ define dso_local { float, double } @test58() {
; LA32-LABEL: test58:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI57_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI57_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI57_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI57_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI57_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI57_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test58:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI57_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI57_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI57_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI57_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI57_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI57_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 25.0000000000, double 25.0000000000 }
@@ -1398,21 +1166,17 @@ define dso_local { float, double } @test59() {
; LA32-LABEL: test59:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI58_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI58_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI58_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI58_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI58_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI58_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test59:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI58_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI58_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI58_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI58_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI58_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI58_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 26.0000000000, double 26.0000000000 }
@@ -1422,21 +1186,17 @@ define dso_local { float, double } @test60() {
; LA32-LABEL: test60:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI59_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI59_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI59_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI59_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI59_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI59_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test60:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI59_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI59_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI59_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI59_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI59_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI59_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 27.0000000000, double 27.0000000000 }
@@ -1446,21 +1206,17 @@ define dso_local { float, double } @test61() {
; LA32-LABEL: test61:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI60_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI60_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI60_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI60_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI60_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI60_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test61:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI60_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI60_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI60_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI60_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI60_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI60_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 28.0000000000, double 28.0000000000 }
@@ -1470,21 +1226,17 @@ define dso_local { float, double } @test62() {
; LA32-LABEL: test62:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI61_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI61_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI61_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI61_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI61_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI61_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test62:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI61_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI61_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI61_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI61_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI61_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI61_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 29.0000000000, double 29.0000000000 }
@@ -1494,21 +1246,17 @@ define dso_local { float, double } @test63() {
; LA32-LABEL: test63:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI62_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI62_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI62_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI62_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI62_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI62_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test63:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI62_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI62_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI62_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI62_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI62_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI62_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 30.0000000000, double 30.0000000000 }
@@ -1518,21 +1266,17 @@ define dso_local { float, double } @test64() {
; LA32-LABEL: test64:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI63_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI63_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI63_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI63_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI63_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI63_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test64:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI63_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI63_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI63_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI63_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI63_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI63_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 31.0000000000, double 31.0000000000 }
@@ -1542,21 +1286,17 @@ define dso_local { float, double } @test65() {
; LA32-LABEL: test65:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI64_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI64_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI64_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI64_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI64_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI64_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test65:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI64_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI64_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI64_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI64_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI64_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI64_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.1250000000, double 0.1250000000 }
@@ -1566,21 +1306,17 @@ define dso_local { float, double } @test66() {
; LA32-LABEL: test66:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI65_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI65_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI65_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI65_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI65_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI65_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test66:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI65_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI65_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI65_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI65_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI65_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI65_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.1328125000, double 0.1328125000 }
@@ -1590,21 +1326,17 @@ define dso_local { float, double } @test67() {
; LA32-LABEL: test67:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI66_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI66_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI66_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI66_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI66_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI66_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test67:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI66_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI66_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI66_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI66_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI66_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI66_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.1406250000, double 0.1406250000 }
@@ -1614,21 +1346,17 @@ define dso_local { float, double } @test68() {
; LA32-LABEL: test68:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI67_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI67_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI67_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI67_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI67_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI67_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test68:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI67_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI67_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI67_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI67_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI67_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI67_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.1484375000, double 0.1484375000 }
@@ -1638,21 +1366,17 @@ define dso_local { float, double } @test69() {
; LA32-LABEL: test69:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI68_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI68_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI68_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI68_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI68_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI68_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test69:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI68_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI68_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI68_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI68_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI68_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI68_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.1562500000, double 0.1562500000 }
@@ -1662,21 +1386,17 @@ define dso_local { float, double } @test70() {
; LA32-LABEL: test70:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI69_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI69_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI69_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI69_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI69_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI69_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test70:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI69_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI69_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI69_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI69_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI69_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI69_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.1640625000, double 0.1640625000 }
@@ -1686,21 +1406,17 @@ define dso_local { float, double } @test71() {
; LA32-LABEL: test71:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI70_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI70_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI70_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI70_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI70_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI70_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test71:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI70_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI70_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI70_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI70_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI70_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI70_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.1718750000, double 0.1718750000 }
@@ -1710,21 +1426,17 @@ define dso_local { float, double } @test72() {
; LA32-LABEL: test72:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI71_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI71_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI71_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI71_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI71_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI71_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test72:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI71_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI71_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI71_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI71_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI71_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI71_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.1796875000, double 0.1796875000 }
@@ -1734,21 +1446,17 @@ define dso_local { float, double } @test73() {
; LA32-LABEL: test73:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI72_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI72_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI72_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI72_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI72_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI72_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test73:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI72_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI72_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI72_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI72_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI72_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI72_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.1875000000, double 0.1875000000 }
@@ -1758,21 +1466,17 @@ define dso_local { float, double } @test74() {
; LA32-LABEL: test74:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI73_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI73_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI73_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI73_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI73_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI73_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test74:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI73_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI73_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI73_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI73_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI73_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI73_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.1953125000, double 0.1953125000 }
@@ -1782,21 +1486,17 @@ define dso_local { float, double } @test75() {
; LA32-LABEL: test75:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI74_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI74_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI74_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI74_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI74_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI74_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test75:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI74_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI74_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI74_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI74_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI74_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI74_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.2031250000, double 0.2031250000 }
@@ -1806,21 +1506,17 @@ define dso_local { float, double } @test76() {
; LA32-LABEL: test76:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI75_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI75_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI75_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI75_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI75_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI75_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test76:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI75_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI75_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI75_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI75_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI75_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI75_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.2109375000, double 0.2109375000 }
@@ -1830,21 +1526,17 @@ define dso_local { float, double } @test77() {
; LA32-LABEL: test77:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI76_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI76_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI76_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI76_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI76_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI76_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test77:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI76_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI76_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI76_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI76_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI76_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI76_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.2187500000, double 0.2187500000 }
@@ -1854,21 +1546,17 @@ define dso_local { float, double } @test78() {
; LA32-LABEL: test78:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI77_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI77_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI77_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI77_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI77_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI77_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test78:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI77_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI77_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI77_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI77_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI77_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI77_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.2265625000, double 0.2265625000 }
@@ -1878,21 +1566,17 @@ define dso_local { float, double } @test79() {
; LA32-LABEL: test79:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI78_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI78_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI78_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI78_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI78_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI78_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test79:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI78_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI78_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI78_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI78_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI78_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI78_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.2343750000, double 0.2343750000 }
@@ -1902,21 +1586,17 @@ define dso_local { float, double } @test80() {
; LA32-LABEL: test80:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI79_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI79_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI79_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI79_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI79_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI79_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test80:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI79_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI79_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI79_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI79_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI79_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI79_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.2421875000, double 0.2421875000 }
@@ -1926,21 +1606,17 @@ define dso_local { float, double } @test81() {
; LA32-LABEL: test81:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI80_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI80_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI80_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI80_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI80_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI80_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test81:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI80_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI80_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI80_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI80_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI80_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI80_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.2500000000, double 0.2500000000 }
@@ -1950,21 +1626,17 @@ define dso_local { float, double } @test82() {
; LA32-LABEL: test82:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI81_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI81_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI81_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI81_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI81_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI81_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test82:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI81_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI81_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI81_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI81_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI81_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI81_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.2656250000, double 0.2656250000 }
@@ -1974,21 +1646,17 @@ define dso_local { float, double } @test83() {
; LA32-LABEL: test83:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI82_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI82_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI82_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI82_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI82_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI82_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test83:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI82_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI82_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI82_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI82_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI82_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI82_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.2812500000, double 0.2812500000 }
@@ -1998,21 +1666,17 @@ define dso_local { float, double } @test84() {
; LA32-LABEL: test84:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI83_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI83_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI83_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI83_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI83_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI83_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test84:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI83_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI83_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI83_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI83_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI83_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI83_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.2968750000, double 0.2968750000 }
@@ -2022,21 +1686,17 @@ define dso_local { float, double } @test85() {
; LA32-LABEL: test85:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI84_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI84_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI84_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI84_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI84_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI84_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test85:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI84_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI84_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI84_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI84_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI84_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI84_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.3125000000, double 0.3125000000 }
@@ -2046,21 +1706,17 @@ define dso_local { float, double } @test86() {
; LA32-LABEL: test86:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI85_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI85_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI85_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI85_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI85_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI85_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test86:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI85_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI85_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI85_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI85_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI85_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI85_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.3281250000, double 0.3281250000 }
@@ -2070,21 +1726,17 @@ define dso_local { float, double } @test87() {
; LA32-LABEL: test87:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI86_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI86_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI86_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI86_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI86_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI86_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test87:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI86_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI86_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI86_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI86_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI86_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI86_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.3437500000, double 0.3437500000 }
@@ -2094,21 +1746,17 @@ define dso_local { float, double } @test88() {
; LA32-LABEL: test88:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI87_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI87_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI87_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI87_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI87_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI87_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test88:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI87_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI87_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI87_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI87_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI87_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI87_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.3593750000, double 0.3593750000 }
@@ -2118,21 +1766,17 @@ define dso_local { float, double } @test89() {
; LA32-LABEL: test89:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI88_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI88_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI88_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI88_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI88_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI88_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test89:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI88_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI88_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI88_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI88_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI88_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI88_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.3750000000, double 0.3750000000 }
@@ -2142,21 +1786,17 @@ define dso_local { float, double } @test90() {
; LA32-LABEL: test90:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI89_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI89_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI89_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI89_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI89_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI89_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test90:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI89_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI89_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI89_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI89_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI89_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI89_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.3906250000, double 0.3906250000 }
@@ -2166,21 +1806,17 @@ define dso_local { float, double } @test91() {
; LA32-LABEL: test91:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI90_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI90_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI90_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI90_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI90_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI90_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test91:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI90_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI90_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI90_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI90_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI90_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI90_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.4062500000, double 0.4062500000 }
@@ -2190,21 +1826,17 @@ define dso_local { float, double } @test92() {
; LA32-LABEL: test92:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI91_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI91_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI91_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI91_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI91_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI91_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test92:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI91_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI91_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI91_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI91_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI91_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI91_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.4218750000, double 0.4218750000 }
@@ -2214,21 +1846,17 @@ define dso_local { float, double } @test93() {
; LA32-LABEL: test93:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI92_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI92_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI92_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI92_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI92_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI92_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test93:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI92_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI92_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI92_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI92_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI92_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI92_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.4375000000, double 0.4375000000 }
@@ -2238,21 +1866,17 @@ define dso_local { float, double } @test94() {
; LA32-LABEL: test94:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI93_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI93_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI93_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI93_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI93_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI93_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test94:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI93_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI93_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI93_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI93_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI93_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI93_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.4531250000, double 0.4531250000 }
@@ -2262,21 +1886,17 @@ define dso_local { float, double } @test95() {
; LA32-LABEL: test95:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI94_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI94_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI94_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI94_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI94_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI94_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test95:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI94_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI94_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI94_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI94_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI94_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI94_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.4687500000, double 0.4687500000 }
@@ -2286,21 +1906,17 @@ define dso_local { float, double } @test96() {
; LA32-LABEL: test96:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI95_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI95_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI95_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI95_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI95_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI95_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test96:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI95_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI95_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI95_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI95_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI95_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI95_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.4843750000, double 0.4843750000 }
@@ -2310,21 +1926,17 @@ define dso_local { float, double } @test97() {
; LA32-LABEL: test97:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI96_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI96_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI96_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI96_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI96_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI96_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test97:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI96_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI96_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI96_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI96_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI96_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI96_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.5000000000, double 0.5000000000 }
@@ -2334,21 +1946,17 @@ define dso_local { float, double } @test98() {
; LA32-LABEL: test98:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI97_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI97_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI97_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI97_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI97_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI97_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test98:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI97_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI97_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI97_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI97_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI97_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI97_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.5312500000, double 0.5312500000 }
@@ -2358,21 +1966,17 @@ define dso_local { float, double } @test99() {
; LA32-LABEL: test99:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI98_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI98_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI98_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI98_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI98_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI98_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test99:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI98_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI98_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI98_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI98_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI98_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI98_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.5625000000, double 0.5625000000 }
@@ -2382,21 +1986,17 @@ define dso_local { float, double } @test100() {
; LA32-LABEL: test100:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI99_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI99_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI99_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI99_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI99_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI99_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test100:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI99_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI99_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI99_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI99_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI99_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI99_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.5937500000, double 0.5937500000 }
@@ -2406,21 +2006,17 @@ define dso_local { float, double } @test101() {
; LA32-LABEL: test101:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI100_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI100_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI100_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI100_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI100_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI100_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test101:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI100_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI100_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI100_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI100_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI100_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI100_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.6250000000, double 0.6250000000 }
@@ -2430,21 +2026,17 @@ define dso_local { float, double } @test102() {
; LA32-LABEL: test102:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI101_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI101_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI101_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI101_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI101_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI101_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test102:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI101_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI101_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI101_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI101_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI101_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI101_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.6562500000, double 0.6562500000 }
@@ -2454,21 +2046,17 @@ define dso_local { float, double } @test103() {
; LA32-LABEL: test103:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI102_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI102_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI102_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI102_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI102_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI102_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test103:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI102_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI102_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI102_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI102_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI102_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI102_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.6875000000, double 0.6875000000 }
@@ -2478,21 +2066,17 @@ define dso_local { float, double } @test104() {
; LA32-LABEL: test104:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI103_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI103_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI103_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI103_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI103_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI103_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test104:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI103_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI103_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI103_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI103_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI103_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI103_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.7187500000, double 0.7187500000 }
@@ -2502,21 +2086,17 @@ define dso_local { float, double } @test105() {
; LA32-LABEL: test105:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI104_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI104_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI104_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI104_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI104_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI104_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test105:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI104_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI104_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI104_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI104_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI104_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI104_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.7500000000, double 0.7500000000 }
@@ -2526,21 +2106,17 @@ define dso_local { float, double } @test106() {
; LA32-LABEL: test106:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI105_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI105_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI105_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI105_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI105_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI105_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test106:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI105_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI105_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI105_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI105_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI105_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI105_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.7812500000, double 0.7812500000 }
@@ -2550,21 +2126,17 @@ define dso_local { float, double } @test107() {
; LA32-LABEL: test107:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI106_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI106_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI106_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI106_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI106_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI106_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test107:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI106_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI106_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI106_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI106_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI106_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI106_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.8125000000, double 0.8125000000 }
@@ -2574,21 +2146,17 @@ define dso_local { float, double } @test108() {
; LA32-LABEL: test108:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI107_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI107_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI107_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI107_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI107_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI107_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test108:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI107_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI107_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI107_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI107_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI107_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI107_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.8437500000, double 0.8437500000 }
@@ -2598,21 +2166,17 @@ define dso_local { float, double } @test109() {
; LA32-LABEL: test109:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI108_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI108_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI108_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI108_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI108_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI108_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test109:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI108_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI108_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI108_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI108_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI108_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI108_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.8750000000, double 0.8750000000 }
@@ -2622,21 +2186,17 @@ define dso_local { float, double } @test110() {
; LA32-LABEL: test110:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI109_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI109_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI109_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI109_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI109_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI109_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test110:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI109_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI109_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI109_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI109_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI109_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI109_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.9062500000, double 0.9062500000 }
@@ -2646,21 +2206,17 @@ define dso_local { float, double } @test111() {
; LA32-LABEL: test111:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI110_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI110_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI110_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI110_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI110_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI110_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test111:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI110_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI110_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI110_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI110_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI110_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI110_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.9375000000, double 0.9375000000 }
@@ -2670,21 +2226,17 @@ define dso_local { float, double } @test112() {
; LA32-LABEL: test112:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI111_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI111_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI111_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI111_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI111_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI111_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test112:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI111_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI111_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI111_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI111_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI111_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI111_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 0.9687500000, double 0.9687500000 }
@@ -2716,21 +2268,17 @@ define dso_local { float, double } @test114() {
; LA32-LABEL: test114:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI113_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI113_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI113_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI113_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI113_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI113_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test114:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI113_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI113_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI113_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI113_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI113_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI113_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 1.0625000000, double 1.0625000000 }
@@ -2740,21 +2288,17 @@ define dso_local { float, double } @test115() {
; LA32-LABEL: test115:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI114_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI114_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI114_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI114_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI114_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI114_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test115:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI114_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI114_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI114_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI114_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI114_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI114_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 1.1250000000, double 1.1250000000 }
@@ -2764,21 +2308,17 @@ define dso_local { float, double } @test116() {
; LA32-LABEL: test116:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI115_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI115_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI115_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI115_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI115_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI115_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test116:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI115_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI115_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI115_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI115_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI115_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI115_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 1.1875000000, double 1.1875000000 }
@@ -2788,21 +2328,17 @@ define dso_local { float, double } @test117() {
; LA32-LABEL: test117:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI116_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI116_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI116_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI116_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI116_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI116_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test117:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI116_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI116_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI116_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI116_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI116_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI116_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 1.2500000000, double 1.2500000000 }
@@ -2812,21 +2348,17 @@ define dso_local { float, double } @test118() {
; LA32-LABEL: test118:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI117_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI117_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI117_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI117_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI117_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI117_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test118:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI117_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI117_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI117_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI117_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI117_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI117_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 1.3125000000, double 1.3125000000 }
@@ -2836,21 +2368,17 @@ define dso_local { float, double } @test119() {
; LA32-LABEL: test119:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI118_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI118_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI118_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI118_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI118_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI118_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test119:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI118_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI118_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI118_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI118_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI118_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI118_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 1.3750000000, double 1.3750000000 }
@@ -2860,21 +2388,17 @@ define dso_local { float, double } @test120() {
; LA32-LABEL: test120:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI119_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI119_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI119_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI119_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI119_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI119_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test120:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI119_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI119_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI119_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI119_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI119_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI119_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 1.4375000000, double 1.4375000000 }
@@ -2884,21 +2408,17 @@ define dso_local { float, double } @test121() {
; LA32-LABEL: test121:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI120_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI120_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI120_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI120_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI120_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI120_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test121:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI120_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI120_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI120_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI120_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI120_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI120_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 1.5000000000, double 1.5000000000 }
@@ -2908,21 +2428,17 @@ define dso_local { float, double } @test122() {
; LA32-LABEL: test122:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI121_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI121_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI121_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI121_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI121_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI121_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test122:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI121_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI121_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI121_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI121_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI121_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI121_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 1.5625000000, double 1.5625000000 }
@@ -2932,21 +2448,17 @@ define dso_local { float, double } @test123() {
; LA32-LABEL: test123:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI122_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI122_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI122_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI122_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI122_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI122_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test123:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI122_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI122_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI122_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI122_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI122_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI122_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 1.6250000000, double 1.6250000000 }
@@ -2956,21 +2468,17 @@ define dso_local { float, double } @test124() {
; LA32-LABEL: test124:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI123_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI123_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI123_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI123_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI123_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI123_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test124:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI123_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI123_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI123_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI123_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI123_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI123_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 1.6875000000, double 1.6875000000 }
@@ -2980,21 +2488,17 @@ define dso_local { float, double } @test125() {
; LA32-LABEL: test125:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI124_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI124_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI124_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI124_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI124_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI124_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test125:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI124_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI124_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI124_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI124_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI124_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI124_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 1.7500000000, double 1.7500000000 }
@@ -3004,21 +2508,17 @@ define dso_local { float, double } @test126() {
; LA32-LABEL: test126:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI125_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI125_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI125_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI125_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI125_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI125_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test126:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI125_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI125_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI125_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI125_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI125_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI125_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 1.8125000000, double 1.8125000000 }
@@ -3028,21 +2528,17 @@ define dso_local { float, double } @test127() {
; LA32-LABEL: test127:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI126_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI126_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI126_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI126_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI126_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI126_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test127:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI126_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI126_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI126_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI126_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI126_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI126_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 1.8750000000, double 1.8750000000 }
@@ -3052,21 +2548,17 @@ define dso_local { float, double } @test128() {
; LA32-LABEL: test128:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI127_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI127_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI127_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI127_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI127_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI127_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test128:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI127_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI127_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI127_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI127_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI127_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI127_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float 1.9375000000, double 1.9375000000 }
@@ -3076,21 +2568,17 @@ define dso_local { float, double } @test129() {
; LA32-LABEL: test129:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI128_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI128_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI128_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI128_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI128_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI128_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test129:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI128_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI128_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI128_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI128_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI128_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI128_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -2.0000000000, double -2.0000000000 }
@@ -3100,21 +2588,17 @@ define dso_local { float, double } @test130() {
; LA32-LABEL: test130:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI129_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI129_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI129_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI129_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI129_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI129_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test130:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI129_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI129_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI129_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI129_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI129_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI129_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -2.1250000000, double -2.1250000000 }
@@ -3124,21 +2608,17 @@ define dso_local { float, double } @test131() {
; LA32-LABEL: test131:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI130_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI130_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI130_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI130_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI130_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI130_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test131:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI130_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI130_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI130_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI130_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI130_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI130_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -2.2500000000, double -2.2500000000 }
@@ -3148,21 +2628,17 @@ define dso_local { float, double } @test132() {
; LA32-LABEL: test132:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI131_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI131_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI131_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI131_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI131_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI131_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test132:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI131_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI131_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI131_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI131_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI131_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI131_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -2.3750000000, double -2.3750000000 }
@@ -3172,21 +2648,17 @@ define dso_local { float, double } @test133() {
; LA32-LABEL: test133:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI132_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI132_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI132_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI132_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI132_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI132_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test133:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI132_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI132_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI132_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI132_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI132_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI132_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -2.5000000000, double -2.5000000000 }
@@ -3196,21 +2668,17 @@ define dso_local { float, double } @test134() {
; LA32-LABEL: test134:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI133_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI133_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI133_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI133_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI133_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI133_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test134:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI133_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI133_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI133_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI133_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI133_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI133_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -2.6250000000, double -2.6250000000 }
@@ -3220,21 +2688,17 @@ define dso_local { float, double } @test135() {
; LA32-LABEL: test135:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI134_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI134_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI134_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI134_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI134_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI134_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test135:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI134_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI134_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI134_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI134_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI134_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI134_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -2.7500000000, double -2.7500000000 }
@@ -3244,21 +2708,17 @@ define dso_local { float, double } @test136() {
; LA32-LABEL: test136:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI135_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI135_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI135_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI135_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI135_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI135_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test136:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI135_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI135_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI135_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI135_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI135_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI135_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -2.8750000000, double -2.8750000000 }
@@ -3268,21 +2728,17 @@ define dso_local { float, double } @test137() {
; LA32-LABEL: test137:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI136_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI136_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI136_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI136_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI136_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI136_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test137:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI136_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI136_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI136_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI136_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI136_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI136_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -3.0000000000, double -3.0000000000 }
@@ -3292,21 +2748,17 @@ define dso_local { float, double } @test138() {
; LA32-LABEL: test138:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI137_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI137_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI137_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI137_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI137_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI137_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test138:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI137_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI137_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI137_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI137_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI137_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI137_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -3.1250000000, double -3.1250000000 }
@@ -3316,21 +2768,17 @@ define dso_local { float, double } @test139() {
; LA32-LABEL: test139:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI138_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI138_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI138_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI138_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI138_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI138_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test139:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI138_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI138_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI138_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI138_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI138_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI138_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -3.2500000000, double -3.2500000000 }
@@ -3340,21 +2788,17 @@ define dso_local { float, double } @test140() {
; LA32-LABEL: test140:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI139_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI139_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI139_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI139_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI139_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI139_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test140:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI139_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI139_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI139_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI139_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI139_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI139_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -3.3750000000, double -3.3750000000 }
@@ -3364,21 +2808,17 @@ define dso_local { float, double } @test141() {
; LA32-LABEL: test141:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI140_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI140_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI140_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI140_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI140_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI140_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test141:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI140_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI140_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI140_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI140_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI140_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI140_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -3.5000000000, double -3.5000000000 }
@@ -3388,21 +2828,17 @@ define dso_local { float, double } @test142() {
; LA32-LABEL: test142:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI141_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI141_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI141_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI141_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI141_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI141_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test142:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI141_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI141_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI141_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI141_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI141_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI141_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -3.6250000000, double -3.6250000000 }
@@ -3412,21 +2848,17 @@ define dso_local { float, double } @test143() {
; LA32-LABEL: test143:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI142_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI142_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI142_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI142_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI142_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI142_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test143:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI142_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI142_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI142_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI142_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI142_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI142_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -3.7500000000, double -3.7500000000 }
@@ -3436,21 +2868,17 @@ define dso_local { float, double } @test144() {
; LA32-LABEL: test144:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI143_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI143_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI143_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI143_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI143_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI143_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test144:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI143_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI143_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI143_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI143_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI143_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI143_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -3.8750000000, double -3.8750000000 }
@@ -3460,21 +2888,17 @@ define dso_local { float, double } @test145() {
; LA32-LABEL: test145:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI144_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI144_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI144_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI144_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI144_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI144_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test145:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI144_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI144_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI144_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI144_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI144_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI144_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -4.0000000000, double -4.0000000000 }
@@ -3484,21 +2908,17 @@ define dso_local { float, double } @test146() {
; LA32-LABEL: test146:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI145_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI145_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI145_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI145_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI145_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI145_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test146:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI145_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI145_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI145_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI145_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI145_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI145_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -4.2500000000, double -4.2500000000 }
@@ -3508,21 +2928,17 @@ define dso_local { float, double } @test147() {
; LA32-LABEL: test147:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI146_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI146_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI146_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI146_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI146_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI146_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test147:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI146_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI146_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI146_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI146_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI146_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI146_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -4.5000000000, double -4.5000000000 }
@@ -3532,21 +2948,17 @@ define dso_local { float, double } @test148() {
; LA32-LABEL: test148:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI147_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI147_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI147_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI147_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI147_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI147_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test148:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI147_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI147_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI147_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI147_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI147_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI147_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -4.7500000000, double -4.7500000000 }
@@ -3556,21 +2968,17 @@ define dso_local { float, double } @test149() {
; LA32-LABEL: test149:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI148_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI148_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI148_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI148_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI148_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI148_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test149:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI148_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI148_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI148_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI148_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI148_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI148_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -5.0000000000, double -5.0000000000 }
@@ -3580,21 +2988,17 @@ define dso_local { float, double } @test150() {
; LA32-LABEL: test150:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI149_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI149_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI149_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI149_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI149_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI149_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test150:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI149_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI149_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI149_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI149_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI149_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI149_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -5.2500000000, double -5.2500000000 }
@@ -3604,21 +3008,17 @@ define dso_local { float, double } @test151() {
; LA32-LABEL: test151:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI150_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI150_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI150_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI150_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI150_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI150_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test151:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI150_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI150_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI150_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI150_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI150_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI150_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -5.5000000000, double -5.5000000000 }
@@ -3628,21 +3028,17 @@ define dso_local { float, double } @test152() {
; LA32-LABEL: test152:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI151_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI151_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI151_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI151_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI151_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI151_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test152:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI151_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI151_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI151_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI151_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI151_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI151_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -5.7500000000, double -5.7500000000 }
@@ -3652,21 +3048,17 @@ define dso_local { float, double } @test153() {
; LA32-LABEL: test153:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI152_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI152_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI152_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI152_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI152_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI152_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test153:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI152_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI152_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI152_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI152_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI152_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI152_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -6.0000000000, double -6.0000000000 }
@@ -3676,21 +3068,17 @@ define dso_local { float, double } @test154() {
; LA32-LABEL: test154:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI153_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI153_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI153_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI153_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI153_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI153_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test154:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI153_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI153_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI153_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI153_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI153_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI153_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -6.2500000000, double -6.2500000000 }
@@ -3700,21 +3088,17 @@ define dso_local { float, double } @test155() {
; LA32-LABEL: test155:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI154_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI154_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI154_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI154_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI154_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI154_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test155:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI154_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI154_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI154_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI154_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI154_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI154_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -6.5000000000, double -6.5000000000 }
@@ -3724,21 +3108,17 @@ define dso_local { float, double } @test156() {
; LA32-LABEL: test156:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI155_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI155_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI155_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI155_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI155_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI155_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test156:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI155_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI155_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI155_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI155_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI155_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI155_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -6.7500000000, double -6.7500000000 }
@@ -3748,21 +3128,17 @@ define dso_local { float, double } @test157() {
; LA32-LABEL: test157:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI156_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI156_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI156_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI156_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI156_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI156_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test157:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI156_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI156_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI156_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI156_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI156_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI156_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -7.0000000000, double -7.0000000000 }
@@ -3772,21 +3148,17 @@ define dso_local { float, double } @test158() {
; LA32-LABEL: test158:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI157_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI157_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI157_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI157_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI157_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI157_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test158:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI157_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI157_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI157_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI157_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI157_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI157_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -7.2500000000, double -7.2500000000 }
@@ -3796,21 +3168,17 @@ define dso_local { float, double } @test159() {
; LA32-LABEL: test159:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI158_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI158_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI158_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI158_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI158_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI158_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test159:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI158_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI158_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI158_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI158_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI158_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI158_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -7.5000000000, double -7.5000000000 }
@@ -3820,21 +3188,17 @@ define dso_local { float, double } @test160() {
; LA32-LABEL: test160:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI159_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI159_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI159_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI159_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI159_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI159_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test160:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI159_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI159_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI159_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI159_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI159_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI159_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -7.7500000000, double -7.7500000000 }
@@ -3844,21 +3208,17 @@ define dso_local { float, double } @test161() {
; LA32-LABEL: test161:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI160_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI160_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI160_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI160_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI160_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI160_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test161:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI160_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI160_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI160_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI160_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI160_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI160_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -8.0000000000, double -8.0000000000 }
@@ -3868,21 +3228,17 @@ define dso_local { float, double } @test162() {
; LA32-LABEL: test162:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI161_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI161_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI161_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI161_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI161_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI161_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test162:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI161_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI161_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI161_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI161_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI161_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI161_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -8.5000000000, double -8.5000000000 }
@@ -3892,21 +3248,17 @@ define dso_local { float, double } @test163() {
; LA32-LABEL: test163:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI162_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI162_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI162_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI162_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI162_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI162_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test163:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI162_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI162_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI162_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI162_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI162_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI162_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -9.0000000000, double -9.0000000000 }
@@ -3916,21 +3268,17 @@ define dso_local { float, double } @test164() {
; LA32-LABEL: test164:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI163_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI163_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI163_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI163_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI163_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI163_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test164:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI163_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI163_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI163_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI163_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI163_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI163_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -9.5000000000, double -9.5000000000 }
@@ -3940,21 +3288,17 @@ define dso_local { float, double } @test165() {
; LA32-LABEL: test165:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI164_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI164_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI164_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI164_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI164_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI164_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test165:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI164_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI164_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI164_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI164_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI164_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI164_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -10.0000000000, double -10.0000000000 }
@@ -3964,21 +3308,17 @@ define dso_local { float, double } @test166() {
; LA32-LABEL: test166:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI165_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI165_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI165_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI165_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI165_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI165_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test166:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI165_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI165_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI165_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI165_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI165_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI165_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -10.5000000000, double -10.5000000000 }
@@ -3988,21 +3328,17 @@ define dso_local { float, double } @test167() {
; LA32-LABEL: test167:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI166_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI166_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI166_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI166_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI166_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI166_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test167:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI166_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI166_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI166_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI166_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI166_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI166_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -11.0000000000, double -11.0000000000 }
@@ -4012,21 +3348,17 @@ define dso_local { float, double } @test168() {
; LA32-LABEL: test168:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI167_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI167_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI167_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI167_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI167_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI167_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test168:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI167_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI167_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI167_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI167_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI167_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI167_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -11.5000000000, double -11.5000000000 }
@@ -4036,21 +3368,17 @@ define dso_local { float, double } @test169() {
; LA32-LABEL: test169:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI168_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI168_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI168_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI168_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI168_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI168_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test169:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI168_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI168_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI168_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI168_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI168_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI168_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -12.0000000000, double -12.0000000000 }
@@ -4060,21 +3388,17 @@ define dso_local { float, double } @test170() {
; LA32-LABEL: test170:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI169_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI169_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI169_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI169_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI169_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI169_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test170:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI169_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI169_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI169_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI169_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI169_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI169_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -12.5000000000, double -12.5000000000 }
@@ -4084,21 +3408,17 @@ define dso_local { float, double } @test171() {
; LA32-LABEL: test171:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI170_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI170_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI170_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI170_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI170_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI170_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test171:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI170_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI170_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI170_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI170_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI170_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI170_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -13.0000000000, double -13.0000000000 }
@@ -4108,21 +3428,17 @@ define dso_local { float, double } @test172() {
; LA32-LABEL: test172:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI171_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI171_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI171_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI171_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI171_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI171_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test172:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI171_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI171_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI171_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI171_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI171_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI171_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -13.5000000000, double -13.5000000000 }
@@ -4132,21 +3448,17 @@ define dso_local { float, double } @test173() {
; LA32-LABEL: test173:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI172_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI172_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI172_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI172_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI172_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI172_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test173:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI172_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI172_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI172_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI172_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI172_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI172_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -14.0000000000, double -14.0000000000 }
@@ -4156,21 +3468,17 @@ define dso_local { float, double } @test174() {
; LA32-LABEL: test174:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI173_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI173_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI173_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI173_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI173_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI173_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test174:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI173_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI173_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI173_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI173_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI173_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI173_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -14.5000000000, double -14.5000000000 }
@@ -4180,21 +3488,17 @@ define dso_local { float, double } @test175() {
; LA32-LABEL: test175:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI174_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI174_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI174_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI174_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI174_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI174_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test175:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI174_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI174_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI174_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI174_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI174_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI174_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -15.0000000000, double -15.0000000000 }
@@ -4204,21 +3508,17 @@ define dso_local { float, double } @test176() {
; LA32-LABEL: test176:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI175_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI175_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI175_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI175_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI175_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI175_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test176:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI175_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI175_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI175_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI175_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI175_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI175_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -15.5000000000, double -15.5000000000 }
@@ -4228,21 +3528,17 @@ define dso_local { float, double } @test177() {
; LA32-LABEL: test177:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI176_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI176_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI176_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI176_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI176_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI176_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test177:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI176_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI176_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI176_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI176_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI176_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI176_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -16.0000000000, double -16.0000000000 }
@@ -4252,21 +3548,17 @@ define dso_local { float, double } @test178() {
; LA32-LABEL: test178:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI177_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI177_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI177_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI177_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI177_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI177_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test178:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI177_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI177_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI177_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI177_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI177_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI177_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -17.0000000000, double -17.0000000000 }
@@ -4276,21 +3568,17 @@ define dso_local { float, double } @test179() {
; LA32-LABEL: test179:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI178_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI178_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI178_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI178_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI178_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI178_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test179:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI178_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI178_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI178_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI178_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI178_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI178_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -18.0000000000, double -18.0000000000 }
@@ -4300,21 +3588,17 @@ define dso_local { float, double } @test180() {
; LA32-LABEL: test180:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI179_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI179_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI179_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI179_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI179_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI179_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test180:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI179_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI179_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI179_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI179_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI179_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI179_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -19.0000000000, double -19.0000000000 }
@@ -4324,21 +3608,17 @@ define dso_local { float, double } @test181() {
; LA32-LABEL: test181:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI180_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI180_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI180_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI180_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI180_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI180_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test181:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI180_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI180_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI180_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI180_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI180_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI180_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -20.0000000000, double -20.0000000000 }
@@ -4348,21 +3628,17 @@ define dso_local { float, double } @test182() {
; LA32-LABEL: test182:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI181_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI181_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI181_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI181_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI181_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI181_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test182:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI181_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI181_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI181_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI181_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI181_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI181_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -21.0000000000, double -21.0000000000 }
@@ -4372,21 +3648,17 @@ define dso_local { float, double } @test183() {
; LA32-LABEL: test183:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI182_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI182_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI182_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI182_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI182_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI182_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test183:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI182_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI182_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI182_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI182_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI182_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI182_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -22.0000000000, double -22.0000000000 }
@@ -4396,21 +3668,17 @@ define dso_local { float, double } @test184() {
; LA32-LABEL: test184:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI183_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI183_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI183_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI183_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI183_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI183_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test184:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI183_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI183_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI183_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI183_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI183_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI183_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -23.0000000000, double -23.0000000000 }
@@ -4420,21 +3688,17 @@ define dso_local { float, double } @test185() {
; LA32-LABEL: test185:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI184_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI184_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI184_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI184_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI184_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI184_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test185:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI184_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI184_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI184_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI184_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI184_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI184_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -24.0000000000, double -24.0000000000 }
@@ -4444,21 +3708,17 @@ define dso_local { float, double } @test186() {
; LA32-LABEL: test186:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI185_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI185_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI185_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI185_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI185_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI185_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test186:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI185_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI185_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI185_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI185_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI185_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI185_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -25.0000000000, double -25.0000000000 }
@@ -4468,21 +3728,17 @@ define dso_local { float, double } @test187() {
; LA32-LABEL: test187:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI186_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI186_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI186_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI186_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI186_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI186_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test187:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI186_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI186_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI186_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI186_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI186_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI186_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -26.0000000000, double -26.0000000000 }
@@ -4492,21 +3748,17 @@ define dso_local { float, double } @test188() {
; LA32-LABEL: test188:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI187_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI187_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI187_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI187_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI187_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI187_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test188:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI187_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI187_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI187_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI187_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI187_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI187_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -27.0000000000, double -27.0000000000 }
@@ -4516,21 +3768,17 @@ define dso_local { float, double } @test189() {
; LA32-LABEL: test189:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI188_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI188_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI188_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI188_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI188_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI188_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test189:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI188_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI188_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI188_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI188_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI188_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI188_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -28.0000000000, double -28.0000000000 }
@@ -4540,21 +3788,17 @@ define dso_local { float, double } @test190() {
; LA32-LABEL: test190:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI189_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI189_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI189_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI189_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI189_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI189_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test190:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI189_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI189_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI189_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI189_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI189_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI189_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -29.0000000000, double -29.0000000000 }
@@ -4564,21 +3808,17 @@ define dso_local { float, double } @test191() {
; LA32-LABEL: test191:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI190_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI190_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI190_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI190_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI190_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI190_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test191:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI190_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI190_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI190_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI190_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI190_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI190_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -30.0000000000, double -30.0000000000 }
@@ -4588,21 +3828,17 @@ define dso_local { float, double } @test192() {
; LA32-LABEL: test192:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI191_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI191_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI191_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI191_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI191_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI191_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test192:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI191_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI191_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI191_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI191_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI191_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI191_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -31.0000000000, double -31.0000000000 }
@@ -4612,21 +3848,17 @@ define dso_local { float, double } @test193() {
; LA32-LABEL: test193:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI192_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI192_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI192_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI192_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI192_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI192_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test193:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI192_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI192_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI192_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI192_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI192_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI192_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.1250000000, double -0.1250000000 }
@@ -4636,21 +3868,17 @@ define dso_local { float, double } @test194() {
; LA32-LABEL: test194:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI193_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI193_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI193_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI193_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI193_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI193_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test194:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI193_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI193_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI193_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI193_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI193_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI193_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.1328125000, double -0.1328125000 }
@@ -4660,21 +3888,17 @@ define dso_local { float, double } @test195() {
; LA32-LABEL: test195:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI194_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI194_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI194_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI194_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI194_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI194_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test195:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI194_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI194_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI194_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI194_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI194_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI194_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.1406250000, double -0.1406250000 }
@@ -4684,21 +3908,17 @@ define dso_local { float, double } @test196() {
; LA32-LABEL: test196:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI195_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI195_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI195_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI195_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI195_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI195_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test196:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI195_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI195_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI195_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI195_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI195_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI195_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.1484375000, double -0.1484375000 }
@@ -4708,21 +3928,17 @@ define dso_local { float, double } @test197() {
; LA32-LABEL: test197:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI196_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI196_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI196_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI196_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI196_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI196_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test197:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI196_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI196_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI196_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI196_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI196_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI196_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.1562500000, double -0.1562500000 }
@@ -4732,21 +3948,17 @@ define dso_local { float, double } @test198() {
; LA32-LABEL: test198:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI197_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI197_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI197_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI197_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI197_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI197_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test198:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI197_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI197_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI197_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI197_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI197_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI197_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.1640625000, double -0.1640625000 }
@@ -4756,21 +3968,17 @@ define dso_local { float, double } @test199() {
; LA32-LABEL: test199:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI198_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI198_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI198_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI198_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI198_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI198_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test199:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI198_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI198_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI198_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI198_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI198_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI198_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.1718750000, double -0.1718750000 }
@@ -4780,21 +3988,17 @@ define dso_local { float, double } @test200() {
; LA32-LABEL: test200:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI199_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI199_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI199_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI199_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI199_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI199_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test200:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI199_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI199_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI199_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI199_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI199_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI199_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.1796875000, double -0.1796875000 }
@@ -4804,21 +4008,17 @@ define dso_local { float, double } @test201() {
; LA32-LABEL: test201:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI200_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI200_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI200_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI200_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI200_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI200_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test201:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI200_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI200_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI200_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI200_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI200_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI200_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.1875000000, double -0.1875000000 }
@@ -4828,21 +4028,17 @@ define dso_local { float, double } @test202() {
; LA32-LABEL: test202:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI201_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI201_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI201_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI201_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI201_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI201_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test202:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI201_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI201_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI201_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI201_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI201_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI201_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.1953125000, double -0.1953125000 }
@@ -4852,21 +4048,17 @@ define dso_local { float, double } @test203() {
; LA32-LABEL: test203:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI202_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI202_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI202_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI202_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI202_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI202_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test203:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI202_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI202_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI202_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI202_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI202_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI202_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.2031250000, double -0.2031250000 }
@@ -4876,21 +4068,17 @@ define dso_local { float, double } @test204() {
; LA32-LABEL: test204:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI203_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI203_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI203_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI203_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI203_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI203_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test204:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI203_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI203_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI203_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI203_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI203_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI203_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.2109375000, double -0.2109375000 }
@@ -4900,21 +4088,17 @@ define dso_local { float, double } @test205() {
; LA32-LABEL: test205:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI204_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI204_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI204_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI204_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI204_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI204_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test205:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI204_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI204_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI204_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI204_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI204_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI204_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.2187500000, double -0.2187500000 }
@@ -4924,21 +4108,17 @@ define dso_local { float, double } @test206() {
; LA32-LABEL: test206:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI205_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI205_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI205_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI205_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI205_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI205_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test206:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI205_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI205_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI205_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI205_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI205_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI205_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.2265625000, double -0.2265625000 }
@@ -4948,21 +4128,17 @@ define dso_local { float, double } @test207() {
; LA32-LABEL: test207:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI206_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI206_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI206_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI206_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI206_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI206_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test207:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI206_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI206_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI206_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI206_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI206_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI206_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.2343750000, double -0.2343750000 }
@@ -4972,21 +4148,17 @@ define dso_local { float, double } @test208() {
; LA32-LABEL: test208:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI207_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI207_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI207_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI207_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI207_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI207_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test208:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI207_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI207_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI207_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI207_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI207_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI207_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.2421875000, double -0.2421875000 }
@@ -4996,21 +4168,17 @@ define dso_local { float, double } @test209() {
; LA32-LABEL: test209:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI208_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI208_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI208_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI208_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI208_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI208_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test209:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI208_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI208_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI208_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI208_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI208_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI208_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.2500000000, double -0.2500000000 }
@@ -5020,21 +4188,17 @@ define dso_local { float, double } @test210() {
; LA32-LABEL: test210:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI209_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI209_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI209_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI209_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI209_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI209_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test210:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI209_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI209_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI209_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI209_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI209_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI209_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.2656250000, double -0.2656250000 }
@@ -5044,21 +4208,17 @@ define dso_local { float, double } @test211() {
; LA32-LABEL: test211:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI210_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI210_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI210_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI210_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI210_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI210_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test211:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI210_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI210_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI210_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI210_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI210_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI210_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.2812500000, double -0.2812500000 }
@@ -5068,21 +4228,17 @@ define dso_local { float, double } @test212() {
; LA32-LABEL: test212:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI211_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI211_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI211_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI211_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI211_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI211_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test212:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI211_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI211_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI211_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI211_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI211_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI211_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.2968750000, double -0.2968750000 }
@@ -5092,21 +4248,17 @@ define dso_local { float, double } @test213() {
; LA32-LABEL: test213:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI212_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI212_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI212_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI212_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI212_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI212_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test213:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI212_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI212_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI212_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI212_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI212_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI212_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.3125000000, double -0.3125000000 }
@@ -5116,21 +4268,17 @@ define dso_local { float, double } @test214() {
; LA32-LABEL: test214:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI213_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI213_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI213_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI213_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI213_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI213_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test214:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI213_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI213_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI213_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI213_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI213_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI213_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.3281250000, double -0.3281250000 }
@@ -5140,21 +4288,17 @@ define dso_local { float, double } @test215() {
; LA32-LABEL: test215:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI214_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI214_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI214_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI214_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI214_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI214_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test215:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI214_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI214_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI214_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI214_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI214_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI214_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.3437500000, double -0.3437500000 }
@@ -5164,21 +4308,17 @@ define dso_local { float, double } @test216() {
; LA32-LABEL: test216:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI215_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI215_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI215_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI215_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI215_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI215_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test216:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI215_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI215_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI215_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI215_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI215_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI215_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.3593750000, double -0.3593750000 }
@@ -5188,21 +4328,17 @@ define dso_local { float, double } @test217() {
; LA32-LABEL: test217:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI216_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI216_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI216_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI216_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI216_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI216_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test217:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI216_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI216_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI216_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI216_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI216_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI216_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.3750000000, double -0.3750000000 }
@@ -5212,21 +4348,17 @@ define dso_local { float, double } @test218() {
; LA32-LABEL: test218:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI217_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI217_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI217_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI217_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI217_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI217_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test218:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI217_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI217_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI217_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI217_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI217_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI217_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.3906250000, double -0.3906250000 }
@@ -5236,21 +4368,17 @@ define dso_local { float, double } @test219() {
; LA32-LABEL: test219:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI218_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI218_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI218_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI218_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI218_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI218_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test219:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI218_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI218_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI218_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI218_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI218_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI218_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.4062500000, double -0.4062500000 }
@@ -5260,21 +4388,17 @@ define dso_local { float, double } @test220() {
; LA32-LABEL: test220:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI219_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI219_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI219_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI219_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI219_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI219_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test220:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI219_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI219_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI219_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI219_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI219_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI219_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.4218750000, double -0.4218750000 }
@@ -5284,21 +4408,17 @@ define dso_local { float, double } @test221() {
; LA32-LABEL: test221:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI220_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI220_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI220_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI220_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI220_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI220_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test221:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI220_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI220_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI220_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI220_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI220_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI220_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.4375000000, double -0.4375000000 }
@@ -5308,21 +4428,17 @@ define dso_local { float, double } @test222() {
; LA32-LABEL: test222:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI221_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI221_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI221_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI221_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI221_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI221_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test222:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI221_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI221_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI221_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI221_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI221_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI221_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.4531250000, double -0.4531250000 }
@@ -5332,21 +4448,17 @@ define dso_local { float, double } @test223() {
; LA32-LABEL: test223:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI222_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI222_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI222_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI222_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI222_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI222_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test223:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI222_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI222_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI222_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI222_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI222_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI222_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.4687500000, double -0.4687500000 }
@@ -5356,21 +4468,17 @@ define dso_local { float, double } @test224() {
; LA32-LABEL: test224:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI223_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI223_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI223_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI223_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI223_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI223_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test224:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI223_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI223_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI223_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI223_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI223_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI223_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.4843750000, double -0.4843750000 }
@@ -5380,21 +4488,17 @@ define dso_local { float, double } @test225() {
; LA32-LABEL: test225:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI224_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI224_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI224_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI224_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI224_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI224_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test225:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI224_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI224_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI224_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI224_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI224_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI224_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.5000000000, double -0.5000000000 }
@@ -5404,21 +4508,17 @@ define dso_local { float, double } @test226() {
; LA32-LABEL: test226:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI225_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI225_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI225_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI225_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI225_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI225_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test226:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI225_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI225_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI225_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI225_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI225_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI225_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.5312500000, double -0.5312500000 }
@@ -5428,21 +4528,17 @@ define dso_local { float, double } @test227() {
; LA32-LABEL: test227:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI226_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI226_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI226_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI226_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI226_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI226_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test227:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI226_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI226_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI226_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI226_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI226_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI226_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.5625000000, double -0.5625000000 }
@@ -5452,21 +4548,17 @@ define dso_local { float, double } @test228() {
; LA32-LABEL: test228:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI227_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI227_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI227_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI227_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI227_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI227_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test228:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI227_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI227_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI227_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI227_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI227_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI227_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.5937500000, double -0.5937500000 }
@@ -5476,21 +4568,17 @@ define dso_local { float, double } @test229() {
; LA32-LABEL: test229:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI228_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI228_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI228_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI228_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI228_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI228_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test229:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI228_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI228_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI228_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI228_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI228_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI228_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.6250000000, double -0.6250000000 }
@@ -5500,21 +4588,17 @@ define dso_local { float, double } @test230() {
; LA32-LABEL: test230:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI229_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI229_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI229_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI229_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI229_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI229_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test230:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI229_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI229_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI229_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI229_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI229_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI229_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.6562500000, double -0.6562500000 }
@@ -5524,21 +4608,17 @@ define dso_local { float, double } @test231() {
; LA32-LABEL: test231:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI230_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI230_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI230_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI230_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI230_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI230_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test231:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI230_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI230_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI230_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI230_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI230_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI230_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.6875000000, double -0.6875000000 }
@@ -5548,21 +4628,17 @@ define dso_local { float, double } @test232() {
; LA32-LABEL: test232:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI231_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI231_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI231_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI231_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI231_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI231_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test232:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI231_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI231_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI231_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI231_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI231_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI231_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.7187500000, double -0.7187500000 }
@@ -5572,21 +4648,17 @@ define dso_local { float, double } @test233() {
; LA32-LABEL: test233:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI232_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI232_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI232_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI232_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI232_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI232_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test233:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI232_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI232_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI232_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI232_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI232_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI232_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.7500000000, double -0.7500000000 }
@@ -5596,21 +4668,17 @@ define dso_local { float, double } @test234() {
; LA32-LABEL: test234:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI233_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI233_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI233_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI233_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI233_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI233_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test234:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI233_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI233_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI233_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI233_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI233_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI233_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.7812500000, double -0.7812500000 }
@@ -5620,21 +4688,17 @@ define dso_local { float, double } @test235() {
; LA32-LABEL: test235:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI234_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI234_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI234_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI234_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI234_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI234_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test235:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI234_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI234_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI234_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI234_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI234_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI234_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.8125000000, double -0.8125000000 }
@@ -5644,21 +4708,17 @@ define dso_local { float, double } @test236() {
; LA32-LABEL: test236:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI235_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI235_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI235_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI235_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI235_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI235_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test236:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI235_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI235_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI235_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI235_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI235_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI235_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.8437500000, double -0.8437500000 }
@@ -5668,21 +4728,17 @@ define dso_local { float, double } @test237() {
; LA32-LABEL: test237:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI236_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI236_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI236_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI236_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI236_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI236_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test237:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI236_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI236_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI236_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI236_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI236_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI236_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.8750000000, double -0.8750000000 }
@@ -5692,21 +4748,17 @@ define dso_local { float, double } @test238() {
; LA32-LABEL: test238:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI237_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI237_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI237_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI237_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI237_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI237_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test238:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI237_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI237_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI237_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI237_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI237_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI237_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.9062500000, double -0.9062500000 }
@@ -5716,21 +4768,17 @@ define dso_local { float, double } @test239() {
; LA32-LABEL: test239:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI238_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI238_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI238_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI238_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI238_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI238_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test239:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI238_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI238_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI238_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI238_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI238_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI238_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.9375000000, double -0.9375000000 }
@@ -5740,21 +4788,17 @@ define dso_local { float, double } @test240() {
; LA32-LABEL: test240:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI239_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI239_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI239_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI239_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI239_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI239_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test240:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI239_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI239_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI239_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI239_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI239_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI239_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -0.9687500000, double -0.9687500000 }
@@ -5764,21 +4808,17 @@ define dso_local { float, double } @test241() {
; LA32-LABEL: test241:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI240_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI240_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI240_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI240_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI240_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI240_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test241:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI240_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI240_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI240_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI240_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI240_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI240_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -1.0000000000, double -1.0000000000 }
@@ -5788,21 +4828,17 @@ define dso_local { float, double } @test242() {
; LA32-LABEL: test242:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI241_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI241_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI241_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI241_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI241_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI241_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test242:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI241_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI241_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI241_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI241_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI241_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI241_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -1.0625000000, double -1.0625000000 }
@@ -5812,21 +4848,17 @@ define dso_local { float, double } @test243() {
; LA32-LABEL: test243:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI242_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI242_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI242_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI242_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI242_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI242_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test243:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI242_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI242_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI242_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI242_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI242_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI242_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -1.1250000000, double -1.1250000000 }
@@ -5836,21 +4868,17 @@ define dso_local { float, double } @test244() {
; LA32-LABEL: test244:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI243_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI243_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI243_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI243_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI243_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI243_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test244:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI243_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI243_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI243_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI243_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI243_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI243_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -1.1875000000, double -1.1875000000 }
@@ -5860,21 +4888,17 @@ define dso_local { float, double } @test245() {
; LA32-LABEL: test245:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI244_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI244_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI244_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI244_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI244_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI244_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test245:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI244_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI244_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI244_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI244_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI244_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI244_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -1.2500000000, double -1.2500000000 }
@@ -5884,21 +4908,17 @@ define dso_local { float, double } @test246() {
; LA32-LABEL: test246:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI245_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI245_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI245_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI245_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI245_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI245_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test246:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI245_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI245_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI245_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI245_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI245_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI245_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -1.3125000000, double -1.3125000000 }
@@ -5908,21 +4928,17 @@ define dso_local { float, double } @test247() {
; LA32-LABEL: test247:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI246_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI246_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI246_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI246_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI246_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI246_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test247:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI246_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI246_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI246_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI246_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI246_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI246_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -1.3750000000, double -1.3750000000 }
@@ -5932,21 +4948,17 @@ define dso_local { float, double } @test248() {
; LA32-LABEL: test248:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI247_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI247_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI247_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI247_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI247_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI247_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test248:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI247_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI247_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI247_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI247_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI247_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI247_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -1.4375000000, double -1.4375000000 }
@@ -5956,21 +4968,17 @@ define dso_local { float, double } @test249() {
; LA32-LABEL: test249:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI248_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI248_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI248_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI248_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI248_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI248_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test249:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI248_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI248_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI248_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI248_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI248_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI248_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -1.5000000000, double -1.5000000000 }
@@ -5980,21 +4988,17 @@ define dso_local { float, double } @test250() {
; LA32-LABEL: test250:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI249_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI249_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI249_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI249_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI249_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI249_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test250:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI249_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI249_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI249_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI249_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI249_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI249_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -1.5625000000, double -1.5625000000 }
@@ -6004,21 +5008,17 @@ define dso_local { float, double } @test251() {
; LA32-LABEL: test251:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI250_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI250_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI250_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI250_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI250_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI250_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test251:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI250_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI250_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI250_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI250_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI250_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI250_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -1.6250000000, double -1.6250000000 }
@@ -6028,21 +5028,17 @@ define dso_local { float, double } @test252() {
; LA32-LABEL: test252:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI251_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI251_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI251_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI251_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI251_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI251_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test252:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI251_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI251_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI251_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI251_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI251_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI251_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -1.6875000000, double -1.6875000000 }
@@ -6052,21 +5048,17 @@ define dso_local { float, double } @test253() {
; LA32-LABEL: test253:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI252_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI252_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI252_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI252_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI252_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI252_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test253:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI252_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI252_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI252_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI252_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI252_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI252_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -1.7500000000, double -1.7500000000 }
@@ -6076,21 +5068,17 @@ define dso_local { float, double } @test254() {
; LA32-LABEL: test254:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI253_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI253_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI253_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI253_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI253_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI253_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test254:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI253_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI253_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI253_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI253_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI253_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI253_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -1.8125000000, double -1.8125000000 }
@@ -6100,21 +5088,17 @@ define dso_local { float, double } @test255() {
; LA32-LABEL: test255:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI254_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI254_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI254_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI254_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI254_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI254_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test255:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI254_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI254_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI254_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI254_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI254_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI254_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -1.8750000000, double -1.8750000000 }
@@ -6124,21 +5108,17 @@ define dso_local { float, double } @test256() {
; LA32-LABEL: test256:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI255_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI255_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI255_0)
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI255_1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI255_1)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI255_1)
; LA32-NEXT: ret
;
; LA64-LABEL: test256:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI255_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI255_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI255_0)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI255_1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI255_1)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI255_1)
; LA64-NEXT: ret
entry:
ret { float, double } { float -1.9375000000, double -1.9375000000 }
diff --git a/llvm/test/CodeGen/LoongArch/float-imm.ll b/llvm/test/CodeGen/LoongArch/float-imm.ll
index e2cbf4bf9b3e87..006a9e64b190de 100644
--- a/llvm/test/CodeGen/LoongArch/float-imm.ll
+++ b/llvm/test/CodeGen/LoongArch/float-imm.ll
@@ -34,15 +34,13 @@ define float @f32_constant_pi() nounwind {
; LA32-LABEL: f32_constant_pi:
; LA32: # %bb.0:
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI2_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI2_0)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI2_0)
; LA32-NEXT: ret
;
; LA64-LABEL: f32_constant_pi:
; LA64: # %bb.0:
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI2_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI2_0)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(.LCPI2_0)
; LA64-NEXT: ret
ret float 3.14159274101257324218750
}
diff --git a/llvm/test/CodeGen/LoongArch/ghc-cc.ll b/llvm/test/CodeGen/LoongArch/ghc-cc.ll
index 735315d323a362..f99759b4b5ed56 100644
--- a/llvm/test/CodeGen/LoongArch/ghc-cc.ll
+++ b/llvm/test/CodeGen/LoongArch/ghc-cc.ll
@@ -27,56 +27,39 @@ define ghccc void @foo() nounwind {
; LA64-LABEL: foo:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(d4)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(d4)
-; LA64-NEXT: fld.d $fs7, $a0, 0
+; LA64-NEXT: fld.d $fs7, $a0, %pc_lo12(d4)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(d3)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(d3)
-; LA64-NEXT: fld.d $fs6, $a0, 0
+; LA64-NEXT: fld.d $fs6, $a0, %pc_lo12(d3)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(d2)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(d2)
-; LA64-NEXT: fld.d $fs5, $a0, 0
+; LA64-NEXT: fld.d $fs5, $a0, %pc_lo12(d2)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(d1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(d1)
-; LA64-NEXT: fld.d $fs4, $a0, 0
+; LA64-NEXT: fld.d $fs4, $a0, %pc_lo12(d1)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(f4)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(f4)
-; LA64-NEXT: fld.s $fs3, $a0, 0
+; LA64-NEXT: fld.s $fs3, $a0, %pc_lo12(f4)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(f3)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(f3)
-; LA64-NEXT: fld.s $fs2, $a0, 0
+; LA64-NEXT: fld.s $fs2, $a0, %pc_lo12(f3)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(f2)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(f2)
-; LA64-NEXT: fld.s $fs1, $a0, 0
+; LA64-NEXT: fld.s $fs1, $a0, %pc_lo12(f2)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(f1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(f1)
-; LA64-NEXT: fld.s $fs0, $a0, 0
+; LA64-NEXT: fld.s $fs0, $a0, %pc_lo12(f1)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(splim)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(splim)
-; LA64-NEXT: ld.d $s8, $a0, 0
+; LA64-NEXT: ld.d $s8, $a0, %pc_lo12(splim)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(r5)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(r5)
-; LA64-NEXT: ld.d $s7, $a0, 0
+; LA64-NEXT: ld.d $s7, $a0, %pc_lo12(r5)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(r4)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(r4)
-; LA64-NEXT: ld.d $s6, $a0, 0
+; LA64-NEXT: ld.d $s6, $a0, %pc_lo12(r4)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(r3)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(r3)
-; LA64-NEXT: ld.d $s5, $a0, 0
+; LA64-NEXT: ld.d $s5, $a0, %pc_lo12(r3)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(r2)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(r2)
-; LA64-NEXT: ld.d $s4, $a0, 0
+; LA64-NEXT: ld.d $s4, $a0, %pc_lo12(r2)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(r1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(r1)
-; LA64-NEXT: ld.d $s3, $a0, 0
+; LA64-NEXT: ld.d $s3, $a0, %pc_lo12(r1)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(hp)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(hp)
-; LA64-NEXT: ld.d $s2, $a0, 0
+; LA64-NEXT: ld.d $s2, $a0, %pc_lo12(hp)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(sp)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(sp)
-; LA64-NEXT: ld.d $s1, $a0, 0
+; LA64-NEXT: ld.d $s1, $a0, %pc_lo12(sp)
; LA64-NEXT: pcalau12i $a0, %pc_hi20(base)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(base)
-; LA64-NEXT: ld.d $s0, $a0, 0
+; LA64-NEXT: ld.d $s0, $a0, %pc_lo12(base)
; LA64-NEXT: b %plt(bar)
entry:
diff --git a/llvm/test/CodeGen/LoongArch/global-address.ll b/llvm/test/CodeGen/LoongArch/global-address.ll
index 2423dd81a4d3a8..89ea48c3b1cbf6 100644
--- a/llvm/test/CodeGen/LoongArch/global-address.ll
+++ b/llvm/test/CodeGen/LoongArch/global-address.ll
@@ -16,8 +16,7 @@ define void @foo() nounwind {
; LA32NOPIC-NEXT: ld.w $a0, $a0, %got_pc_lo12(G)
; LA32NOPIC-NEXT: ld.w $zero, $a0, 0
; LA32NOPIC-NEXT: pcalau12i $a0, %pc_hi20(g)
-; LA32NOPIC-NEXT: addi.w $a0, $a0, %pc_lo12(g)
-; LA32NOPIC-NEXT: ld.w $zero, $a0, 0
+; LA32NOPIC-NEXT: ld.w $zero, $a0, %pc_lo12(g)
; LA32NOPIC-NEXT: ret
;
; LA32PIC-LABEL: foo:
@@ -26,8 +25,7 @@ define void @foo() nounwind {
; LA32PIC-NEXT: ld.w $a0, $a0, %got_pc_lo12(G)
; LA32PIC-NEXT: ld.w $zero, $a0, 0
; LA32PIC-NEXT: pcalau12i $a0, %pc_hi20(.Lg$local)
-; LA32PIC-NEXT: addi.w $a0, $a0, %pc_lo12(.Lg$local)
-; LA32PIC-NEXT: ld.w $zero, $a0, 0
+; LA32PIC-NEXT: ld.w $zero, $a0, %pc_lo12(.Lg$local)
; LA32PIC-NEXT: ret
;
; LA64NOPIC-LABEL: foo:
@@ -36,8 +34,7 @@ define void @foo() nounwind {
; LA64NOPIC-NEXT: ld.d $a0, $a0, %got_pc_lo12(G)
; LA64NOPIC-NEXT: ld.w $zero, $a0, 0
; LA64NOPIC-NEXT: pcalau12i $a0, %pc_hi20(g)
-; LA64NOPIC-NEXT: addi.d $a0, $a0, %pc_lo12(g)
-; LA64NOPIC-NEXT: ld.w $zero, $a0, 0
+; LA64NOPIC-NEXT: ld.w $zero, $a0, %pc_lo12(g)
; LA64NOPIC-NEXT: ret
;
; LA64PIC-LABEL: foo:
@@ -46,8 +43,7 @@ define void @foo() nounwind {
; LA64PIC-NEXT: ld.d $a0, $a0, %got_pc_lo12(G)
; LA64PIC-NEXT: ld.w $zero, $a0, 0
; LA64PIC-NEXT: pcalau12i $a0, %pc_hi20(.Lg$local)
-; LA64PIC-NEXT: addi.d $a0, $a0, %pc_lo12(.Lg$local)
-; LA64PIC-NEXT: ld.w $zero, $a0, 0
+; LA64PIC-NEXT: ld.w $zero, $a0, %pc_lo12(.Lg$local)
; LA64PIC-NEXT: ret
;
; LA64LARGENOPIC-LABEL: foo:
@@ -62,8 +58,7 @@ define void @foo() nounwind {
; LA64LARGENOPIC-NEXT: addi.d $a1, $zero, %pc_lo12(g)
; LA64LARGENOPIC-NEXT: lu32i.d $a1, %pc64_lo20(g)
; LA64LARGENOPIC-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g)
-; LA64LARGENOPIC-NEXT: add.d $a0, $a1, $a0
-; LA64LARGENOPIC-NEXT: ld.w $zero, $a0, 0
+; LA64LARGENOPIC-NEXT: ldx.w $zero, $a1, $a0
; LA64LARGENOPIC-NEXT: ret
;
; LA64LARGEPIC-LABEL: foo:
@@ -78,8 +73,7 @@ define void @foo() nounwind {
; LA64LARGEPIC-NEXT: addi.d $a1, $zero, %pc_lo12(.Lg$local)
; LA64LARGEPIC-NEXT: lu32i.d $a1, %pc64_lo20(.Lg$local)
; LA64LARGEPIC-NEXT: lu52i.d $a1, $a1, %pc64_hi12(.Lg$local)
-; LA64LARGEPIC-NEXT: add.d $a0, $a1, $a0
-; LA64LARGEPIC-NEXT: ld.w $zero, $a0, 0
+; LA64LARGEPIC-NEXT: ldx.w $zero, $a1, $a0
; LA64LARGEPIC-NEXT: ret
%V = load volatile i32, ptr @G
%v = load volatile i32, ptr @g
diff --git a/llvm/test/CodeGen/LoongArch/global-variable-code-model.ll b/llvm/test/CodeGen/LoongArch/global-variable-code-model.ll
index 2b7a862ecde11e..04f6a635778eba 100644
--- a/llvm/test/CodeGen/LoongArch/global-variable-code-model.ll
+++ b/llvm/test/CodeGen/LoongArch/global-variable-code-model.ll
@@ -7,8 +7,7 @@ define dso_local signext i32 @local_small() #0 {
; CHECK-LABEL: local_small:
; CHECK: # %bb.0:
; CHECK-NEXT: pcalau12i $a0, %pc_hi20(a)
-; CHECK-NEXT: addi.d $a0, $a0, %pc_lo12(a)
-; CHECK-NEXT: ld.w $a0, $a0, 0
+; CHECK-NEXT: ld.w $a0, $a0, %pc_lo12(a)
; CHECK-NEXT: ret
%1 = load i32, ptr @a, align 4
ret i32 %1
@@ -23,8 +22,7 @@ define dso_local signext i32 @local_large() #0 {
; CHECK-NEXT: addi.d $a1, $zero, %pc_lo12(b)
; CHECK-NEXT: lu32i.d $a1, %pc64_lo20(b)
; CHECK-NEXT: lu52i.d $a1, $a1, %pc64_hi12(b)
-; CHECK-NEXT: add.d $a0, $a1, $a0
-; CHECK-NEXT: ld.w $a0, $a0, 0
+; CHECK-NEXT: ldx.w $a0, $a1, $a0
; CHECK-NEXT: ret
%1 = load i32, ptr @b, align 4
ret i32 %1
diff --git a/llvm/test/CodeGen/LoongArch/inline-asm-constraint-f.ll b/llvm/test/CodeGen/LoongArch/inline-asm-constraint-f.ll
index fa675e4bbb3243..be9ea29b54c332 100644
--- a/llvm/test/CodeGen/LoongArch/inline-asm-constraint-f.ll
+++ b/llvm/test/CodeGen/LoongArch/inline-asm-constraint-f.ll
@@ -10,8 +10,7 @@ define double @constraint_f_double(double %a) nounwind {
; LA32-LABEL: constraint_f_double:
; LA32: # %bb.0:
; LA32-NEXT: pcalau12i $a0, %pc_hi20(gd)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(gd)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(gd)
; LA32-NEXT: #APP
; LA32-NEXT: fadd.d $fa0, $fa0, $fa1
; LA32-NEXT: #NO_APP
@@ -20,8 +19,7 @@ define double @constraint_f_double(double %a) nounwind {
; LA64-LABEL: constraint_f_double:
; LA64: # %bb.0:
; LA64-NEXT: pcalau12i $a0, %pc_hi20(gd)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(gd)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(gd)
; LA64-NEXT: #APP
; LA64-NEXT: fadd.d $fa0, $fa0, $fa1
; LA64-NEXT: #NO_APP
diff --git a/llvm/test/CodeGen/LoongArch/inline-asm-constraint-m.ll b/llvm/test/CodeGen/LoongArch/inline-asm-constraint-m.ll
index becb3cae46b8c0..565ccdbe6880fb 100644
--- a/llvm/test/CodeGen/LoongArch/inline-asm-constraint-m.ll
+++ b/llvm/test/CodeGen/LoongArch/inline-asm-constraint-m.ll
@@ -147,19 +147,17 @@ define i32 @m_offset_2048(ptr %p) nounwind {
define i32 @m_addr_pcrel() nounwind {
; LA32-LABEL: m_addr_pcrel:
; LA32: # %bb.0:
-; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_i32)
-; LA32-NEXT: addi.w $a1, $a0, %pc_lo12(g_i32)
+; LA32-NEXT: pcalau12i $a1, %pc_hi20(g_i32)
; LA32-NEXT: #APP
-; LA32-NEXT: ld.w $a0, $a1, 0
+; LA32-NEXT: ld.w $a0, $a1, %pc_lo12(g_i32)
; LA32-NEXT: #NO_APP
; LA32-NEXT: ret
;
; LA64-LABEL: m_addr_pcrel:
; LA64: # %bb.0:
-; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_i32)
-; LA64-NEXT: addi.d $a1, $a0, %pc_lo12(g_i32)
+; LA64-NEXT: pcalau12i $a1, %pc_hi20(g_i32)
; LA64-NEXT: #APP
-; LA64-NEXT: ld.w $a0, $a1, 0
+; LA64-NEXT: ld.w $a0, $a1, %pc_lo12(g_i32)
; LA64-NEXT: #NO_APP
; LA64-NEXT: ret
%1 = tail call i32 asm sideeffect "ld.w $0, $1", "=&r,*m"(ptr nonnull elementtype(i32) @g_i32)
diff --git a/llvm/test/CodeGen/LoongArch/ir-instruction/atomicrmw-fp.ll b/llvm/test/CodeGen/LoongArch/ir-instruction/atomicrmw-fp.ll
index 193fa6c08600ae..7e320d9245f1c2 100644
--- a/llvm/test/CodeGen/LoongArch/ir-instruction/atomicrmw-fp.ll
+++ b/llvm/test/CodeGen/LoongArch/ir-instruction/atomicrmw-fp.ll
@@ -79,8 +79,7 @@ define float @float_fsub_acquire(ptr %p) nounwind {
; LA64F: # %bb.0:
; LA64F-NEXT: fld.s $fa0, $a0, 0
; LA64F-NEXT: pcalau12i $a1, %pc_hi20(.LCPI1_0)
-; LA64F-NEXT: addi.d $a1, $a1, %pc_lo12(.LCPI1_0)
-; LA64F-NEXT: fld.s $fa1, $a1, 0
+; LA64F-NEXT: fld.s $fa1, $a1, %pc_lo12(.LCPI1_0)
; LA64F-NEXT: .p2align 4, , 16
; LA64F-NEXT: .LBB1_1: # %atomicrmw.start
; LA64F-NEXT: # =>This Loop Header: Depth=1
@@ -113,8 +112,7 @@ define float @float_fsub_acquire(ptr %p) nounwind {
; LA64D: # %bb.0:
; LA64D-NEXT: fld.s $fa0, $a0, 0
; LA64D-NEXT: pcalau12i $a1, %pc_hi20(.LCPI1_0)
-; LA64D-NEXT: addi.d $a1, $a1, %pc_lo12(.LCPI1_0)
-; LA64D-NEXT: fld.s $fa1, $a1, 0
+; LA64D-NEXT: fld.s $fa1, $a1, %pc_lo12(.LCPI1_0)
; LA64D-NEXT: .p2align 4, , 16
; LA64D-NEXT: .LBB1_1: # %atomicrmw.start
; LA64D-NEXT: # =>This Loop Header: Depth=1
@@ -413,8 +411,7 @@ define double @double_fsub_acquire(ptr %p) nounwind {
; LA64D-NEXT: move $fp, $a0
; LA64D-NEXT: fld.d $fa0, $a0, 0
; LA64D-NEXT: pcalau12i $a0, %pc_hi20(.LCPI5_0)
-; LA64D-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI5_0)
-; LA64D-NEXT: fld.d $fs0, $a0, 0
+; LA64D-NEXT: fld.d $fs0, $a0, %pc_lo12(.LCPI5_0)
; LA64D-NEXT: .p2align 4, , 16
; LA64D-NEXT: .LBB5_1: # %atomicrmw.start
; LA64D-NEXT: # =>This Inner Loop Header: Depth=1
@@ -665,8 +662,7 @@ define float @float_fsub_release(ptr %p) nounwind {
; LA64F: # %bb.0:
; LA64F-NEXT: fld.s $fa0, $a0, 0
; LA64F-NEXT: pcalau12i $a1, %pc_hi20(.LCPI9_0)
-; LA64F-NEXT: addi.d $a1, $a1, %pc_lo12(.LCPI9_0)
-; LA64F-NEXT: fld.s $fa1, $a1, 0
+; LA64F-NEXT: fld.s $fa1, $a1, %pc_lo12(.LCPI9_0)
; LA64F-NEXT: .p2align 4, , 16
; LA64F-NEXT: .LBB9_1: # %atomicrmw.start
; LA64F-NEXT: # =>This Loop Header: Depth=1
@@ -699,8 +695,7 @@ define float @float_fsub_release(ptr %p) nounwind {
; LA64D: # %bb.0:
; LA64D-NEXT: fld.s $fa0, $a0, 0
; LA64D-NEXT: pcalau12i $a1, %pc_hi20(.LCPI9_0)
-; LA64D-NEXT: addi.d $a1, $a1, %pc_lo12(.LCPI9_0)
-; LA64D-NEXT: fld.s $fa1, $a1, 0
+; LA64D-NEXT: fld.s $fa1, $a1, %pc_lo12(.LCPI9_0)
; LA64D-NEXT: .p2align 4, , 16
; LA64D-NEXT: .LBB9_1: # %atomicrmw.start
; LA64D-NEXT: # =>This Loop Header: Depth=1
@@ -999,8 +994,7 @@ define double @double_fsub_release(ptr %p) nounwind {
; LA64D-NEXT: move $fp, $a0
; LA64D-NEXT: fld.d $fa0, $a0, 0
; LA64D-NEXT: pcalau12i $a0, %pc_hi20(.LCPI13_0)
-; LA64D-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI13_0)
-; LA64D-NEXT: fld.d $fs0, $a0, 0
+; LA64D-NEXT: fld.d $fs0, $a0, %pc_lo12(.LCPI13_0)
; LA64D-NEXT: .p2align 4, , 16
; LA64D-NEXT: .LBB13_1: # %atomicrmw.start
; LA64D-NEXT: # =>This Inner Loop Header: Depth=1
@@ -1251,8 +1245,7 @@ define float @float_fsub_acq_rel(ptr %p) nounwind {
; LA64F: # %bb.0:
; LA64F-NEXT: fld.s $fa0, $a0, 0
; LA64F-NEXT: pcalau12i $a1, %pc_hi20(.LCPI17_0)
-; LA64F-NEXT: addi.d $a1, $a1, %pc_lo12(.LCPI17_0)
-; LA64F-NEXT: fld.s $fa1, $a1, 0
+; LA64F-NEXT: fld.s $fa1, $a1, %pc_lo12(.LCPI17_0)
; LA64F-NEXT: .p2align 4, , 16
; LA64F-NEXT: .LBB17_1: # %atomicrmw.start
; LA64F-NEXT: # =>This Loop Header: Depth=1
@@ -1285,8 +1278,7 @@ define float @float_fsub_acq_rel(ptr %p) nounwind {
; LA64D: # %bb.0:
; LA64D-NEXT: fld.s $fa0, $a0, 0
; LA64D-NEXT: pcalau12i $a1, %pc_hi20(.LCPI17_0)
-; LA64D-NEXT: addi.d $a1, $a1, %pc_lo12(.LCPI17_0)
-; LA64D-NEXT: fld.s $fa1, $a1, 0
+; LA64D-NEXT: fld.s $fa1, $a1, %pc_lo12(.LCPI17_0)
; LA64D-NEXT: .p2align 4, , 16
; LA64D-NEXT: .LBB17_1: # %atomicrmw.start
; LA64D-NEXT: # =>This Loop Header: Depth=1
@@ -1585,8 +1577,7 @@ define double @double_fsub_acq_rel(ptr %p) nounwind {
; LA64D-NEXT: move $fp, $a0
; LA64D-NEXT: fld.d $fa0, $a0, 0
; LA64D-NEXT: pcalau12i $a0, %pc_hi20(.LCPI21_0)
-; LA64D-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI21_0)
-; LA64D-NEXT: fld.d $fs0, $a0, 0
+; LA64D-NEXT: fld.d $fs0, $a0, %pc_lo12(.LCPI21_0)
; LA64D-NEXT: .p2align 4, , 16
; LA64D-NEXT: .LBB21_1: # %atomicrmw.start
; LA64D-NEXT: # =>This Inner Loop Header: Depth=1
@@ -1837,8 +1828,7 @@ define float @float_fsub_seq_cst(ptr %p) nounwind {
; LA64F: # %bb.0:
; LA64F-NEXT: fld.s $fa0, $a0, 0
; LA64F-NEXT: pcalau12i $a1, %pc_hi20(.LCPI25_0)
-; LA64F-NEXT: addi.d $a1, $a1, %pc_lo12(.LCPI25_0)
-; LA64F-NEXT: fld.s $fa1, $a1, 0
+; LA64F-NEXT: fld.s $fa1, $a1, %pc_lo12(.LCPI25_0)
; LA64F-NEXT: .p2align 4, , 16
; LA64F-NEXT: .LBB25_1: # %atomicrmw.start
; LA64F-NEXT: # =>This Loop Header: Depth=1
@@ -1871,8 +1861,7 @@ define float @float_fsub_seq_cst(ptr %p) nounwind {
; LA64D: # %bb.0:
; LA64D-NEXT: fld.s $fa0, $a0, 0
; LA64D-NEXT: pcalau12i $a1, %pc_hi20(.LCPI25_0)
-; LA64D-NEXT: addi.d $a1, $a1, %pc_lo12(.LCPI25_0)
-; LA64D-NEXT: fld.s $fa1, $a1, 0
+; LA64D-NEXT: fld.s $fa1, $a1, %pc_lo12(.LCPI25_0)
; LA64D-NEXT: .p2align 4, , 16
; LA64D-NEXT: .LBB25_1: # %atomicrmw.start
; LA64D-NEXT: # =>This Loop Header: Depth=1
@@ -2171,8 +2160,7 @@ define double @double_fsub_seq_cst(ptr %p) nounwind {
; LA64D-NEXT: move $fp, $a0
; LA64D-NEXT: fld.d $fa0, $a0, 0
; LA64D-NEXT: pcalau12i $a0, %pc_hi20(.LCPI29_0)
-; LA64D-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI29_0)
-; LA64D-NEXT: fld.d $fs0, $a0, 0
+; LA64D-NEXT: fld.d $fs0, $a0, %pc_lo12(.LCPI29_0)
; LA64D-NEXT: .p2align 4, , 16
; LA64D-NEXT: .LBB29_1: # %atomicrmw.start
; LA64D-NEXT: # =>This Inner Loop Header: Depth=1
@@ -2423,8 +2411,7 @@ define float @float_fsub_monotonic(ptr %p) nounwind {
; LA64F: # %bb.0:
; LA64F-NEXT: fld.s $fa0, $a0, 0
; LA64F-NEXT: pcalau12i $a1, %pc_hi20(.LCPI33_0)
-; LA64F-NEXT: addi.d $a1, $a1, %pc_lo12(.LCPI33_0)
-; LA64F-NEXT: fld.s $fa1, $a1, 0
+; LA64F-NEXT: fld.s $fa1, $a1, %pc_lo12(.LCPI33_0)
; LA64F-NEXT: .p2align 4, , 16
; LA64F-NEXT: .LBB33_1: # %atomicrmw.start
; LA64F-NEXT: # =>This Loop Header: Depth=1
@@ -2457,8 +2444,7 @@ define float @float_fsub_monotonic(ptr %p) nounwind {
; LA64D: # %bb.0:
; LA64D-NEXT: fld.s $fa0, $a0, 0
; LA64D-NEXT: pcalau12i $a1, %pc_hi20(.LCPI33_0)
-; LA64D-NEXT: addi.d $a1, $a1, %pc_lo12(.LCPI33_0)
-; LA64D-NEXT: fld.s $fa1, $a1, 0
+; LA64D-NEXT: fld.s $fa1, $a1, %pc_lo12(.LCPI33_0)
; LA64D-NEXT: .p2align 4, , 16
; LA64D-NEXT: .LBB33_1: # %atomicrmw.start
; LA64D-NEXT: # =>This Loop Header: Depth=1
@@ -2757,8 +2743,7 @@ define double @double_fsub_monotonic(ptr %p) nounwind {
; LA64D-NEXT: move $fp, $a0
; LA64D-NEXT: fld.d $fa0, $a0, 0
; LA64D-NEXT: pcalau12i $a0, %pc_hi20(.LCPI37_0)
-; LA64D-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI37_0)
-; LA64D-NEXT: fld.d $fs0, $a0, 0
+; LA64D-NEXT: fld.d $fs0, $a0, %pc_lo12(.LCPI37_0)
; LA64D-NEXT: .p2align 4, , 16
; LA64D-NEXT: .LBB37_1: # %atomicrmw.start
; LA64D-NEXT: # =>This Inner Loop Header: Depth=1
diff --git a/llvm/test/CodeGen/LoongArch/ir-instruction/double-convert.ll b/llvm/test/CodeGen/LoongArch/ir-instruction/double-convert.ll
index ef117f97488715..8d08942c314aa4 100644
--- a/llvm/test/CodeGen/LoongArch/ir-instruction/double-convert.ll
+++ b/llvm/test/CodeGen/LoongArch/ir-instruction/double-convert.ll
@@ -117,8 +117,7 @@ define i32 @convert_double_to_u32(double %a) nounwind {
; LA32-LABEL: convert_double_to_u32:
; LA32: # %bb.0:
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI7_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI7_0)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI7_0)
; LA32-NEXT: fcmp.clt.d $fcc0, $fa0, $fa1
; LA32-NEXT: fsub.d $fa1, $fa0, $fa1
; LA32-NEXT: ftintrz.w.d $fa1, $fa1
@@ -174,8 +173,7 @@ define i64 @convert_double_to_u64(double %a) nounwind {
; LA64-LABEL: convert_double_to_u64:
; LA64: # %bb.0:
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LCPI9_0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI9_0)
-; LA64-NEXT: fld.d $fa1, $a0, 0
+; LA64-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI9_0)
; LA64-NEXT: fcmp.clt.d $fcc0, $fa0, $fa1
; LA64-NEXT: fsub.d $fa1, $fa0, $fa1
; LA64-NEXT: ftintrz.l.d $fa1, $fa1
@@ -234,8 +232,7 @@ define double @convert_u32_to_double(i32 %a) nounwind {
; LA32-NEXT: st.w $a0, $sp, 8
; LA32-NEXT: fld.d $fa0, $sp, 8
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.LCPI12_0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI12_0)
-; LA32-NEXT: fld.d $fa1, $a0, 0
+; LA32-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI12_0)
; LA32-NEXT: fsub.d $fa0, $fa0, $fa1
; LA32-NEXT: addi.w $sp, $sp, 16
; LA32-NEXT: ret
@@ -264,8 +261,7 @@ define double @convert_u64_to_double(i64 %a) nounwind {
; LA64: # %bb.0:
; LA64-NEXT: srli.d $a1, $a0, 32
; LA64-NEXT: pcalau12i $a2, %pc_hi20(.LCPI13_0)
-; LA64-NEXT: addi.d $a2, $a2, %pc_lo12(.LCPI13_0)
-; LA64-NEXT: fld.d $fa0, $a2, 0
+; LA64-NEXT: fld.d $fa0, $a2, %pc_lo12(.LCPI13_0)
; LA64-NEXT: lu52i.d $a2, $zero, 1107
; LA64-NEXT: or $a1, $a1, $a2
; LA64-NEXT: movgr2fr.d $fa1, $a1
diff --git a/llvm/test/CodeGen/LoongArch/ir-instruction/float-convert.ll b/llvm/test/CodeGen/LoongArch/ir-instruction/float-convert.ll
index b01b84ba385ec8..b7de5a592c3598 100644
--- a/llvm/test/CodeGen/LoongArch/ir-instruction/float-convert.ll
+++ b/llvm/test/CodeGen/LoongArch/ir-instruction/float-convert.ll
@@ -182,8 +182,7 @@ define i32 @convert_float_to_u32(float %a) nounwind {
; LA32F-LABEL: convert_float_to_u32:
; LA32F: # %bb.0:
; LA32F-NEXT: pcalau12i $a0, %pc_hi20(.LCPI6_0)
-; LA32F-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI6_0)
-; LA32F-NEXT: fld.s $fa1, $a0, 0
+; LA32F-NEXT: fld.s $fa1, $a0, %pc_lo12(.LCPI6_0)
; LA32F-NEXT: fcmp.clt.s $fcc0, $fa0, $fa1
; LA32F-NEXT: fsub.s $fa1, $fa0, $fa1
; LA32F-NEXT: ftintrz.w.s $fa1, $fa1
@@ -201,8 +200,7 @@ define i32 @convert_float_to_u32(float %a) nounwind {
; LA32D-LABEL: convert_float_to_u32:
; LA32D: # %bb.0:
; LA32D-NEXT: pcalau12i $a0, %pc_hi20(.LCPI6_0)
-; LA32D-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI6_0)
-; LA32D-NEXT: fld.s $fa1, $a0, 0
+; LA32D-NEXT: fld.s $fa1, $a0, %pc_lo12(.LCPI6_0)
; LA32D-NEXT: fcmp.clt.s $fcc0, $fa0, $fa1
; LA32D-NEXT: fsub.s $fa1, $fa0, $fa1
; LA32D-NEXT: ftintrz.w.s $fa1, $fa1
@@ -220,8 +218,7 @@ define i32 @convert_float_to_u32(float %a) nounwind {
; LA64F-LABEL: convert_float_to_u32:
; LA64F: # %bb.0:
; LA64F-NEXT: pcalau12i $a0, %pc_hi20(.LCPI6_0)
-; LA64F-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI6_0)
-; LA64F-NEXT: fld.s $fa1, $a0, 0
+; LA64F-NEXT: fld.s $fa1, $a0, %pc_lo12(.LCPI6_0)
; LA64F-NEXT: fcmp.clt.s $fcc0, $fa0, $fa1
; LA64F-NEXT: fsub.s $fa1, $fa0, $fa1
; LA64F-NEXT: ftintrz.w.s $fa1, $fa1
@@ -267,8 +264,7 @@ define i64 @convert_float_to_u64(float %a) nounwind {
; LA64F-LABEL: convert_float_to_u64:
; LA64F: # %bb.0:
; LA64F-NEXT: pcalau12i $a0, %pc_hi20(.LCPI7_0)
-; LA64F-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI7_0)
-; LA64F-NEXT: fld.s $fa1, $a0, 0
+; LA64F-NEXT: fld.s $fa1, $a0, %pc_lo12(.LCPI7_0)
; LA64F-NEXT: fcmp.clt.s $fcc0, $fa0, $fa1
; LA64F-NEXT: fsub.s $fa1, $fa0, $fa1
; LA64F-NEXT: ftintrz.w.s $fa1, $fa1
@@ -286,8 +282,7 @@ define i64 @convert_float_to_u64(float %a) nounwind {
; LA64D-LABEL: convert_float_to_u64:
; LA64D: # %bb.0:
; LA64D-NEXT: pcalau12i $a0, %pc_hi20(.LCPI7_0)
-; LA64D-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI7_0)
-; LA64D-NEXT: fld.s $fa1, $a0, 0
+; LA64D-NEXT: fld.s $fa1, $a0, %pc_lo12(.LCPI7_0)
; LA64D-NEXT: fcmp.clt.s $fcc0, $fa0, $fa1
; LA64D-NEXT: fsub.s $fa1, $fa0, $fa1
; LA64D-NEXT: ftintrz.l.s $fa1, $fa1
@@ -506,8 +501,7 @@ define float @convert_u32_to_float(i32 %a) nounwind {
; LA32D-NEXT: st.w $a0, $sp, 8
; LA32D-NEXT: fld.d $fa0, $sp, 8
; LA32D-NEXT: pcalau12i $a0, %pc_hi20(.LCPI14_0)
-; LA32D-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI14_0)
-; LA32D-NEXT: fld.d $fa1, $a0, 0
+; LA32D-NEXT: fld.d $fa1, $a0, %pc_lo12(.LCPI14_0)
; LA32D-NEXT: fsub.d $fa0, $fa0, $fa1
; LA32D-NEXT: fcvt.s.d $fa0, $fa0
; LA32D-NEXT: addi.w $sp, $sp, 16
diff --git a/llvm/test/CodeGen/LoongArch/ir-instruction/load-store.ll b/llvm/test/CodeGen/LoongArch/ir-instruction/load-store.ll
index 26f44adc613586..772ae8d81a88bf 100644
--- a/llvm/test/CodeGen/LoongArch/ir-instruction/load-store.ll
+++ b/llvm/test/CodeGen/LoongArch/ir-instruction/load-store.ll
@@ -11,38 +11,34 @@
define i32 @load_store_global() nounwind {
; LA32NOPIC-LABEL: load_store_global:
; LA32NOPIC: # %bb.0:
-; LA32NOPIC-NEXT: pcalau12i $a0, %pc_hi20(G)
-; LA32NOPIC-NEXT: addi.w $a1, $a0, %pc_lo12(G)
-; LA32NOPIC-NEXT: ld.w $a0, $a1, 0
+; LA32NOPIC-NEXT: pcalau12i $a1, %pc_hi20(G)
+; LA32NOPIC-NEXT: ld.w $a0, $a1, %pc_lo12(G)
; LA32NOPIC-NEXT: addi.w $a0, $a0, 1
-; LA32NOPIC-NEXT: st.w $a0, $a1, 0
+; LA32NOPIC-NEXT: st.w $a0, $a1, %pc_lo12(G)
; LA32NOPIC-NEXT: ret
;
; LA32PIC-LABEL: load_store_global:
; LA32PIC: # %bb.0:
-; LA32PIC-NEXT: pcalau12i $a0, %pc_hi20(.LG$local)
-; LA32PIC-NEXT: addi.w $a1, $a0, %pc_lo12(.LG$local)
-; LA32PIC-NEXT: ld.w $a0, $a1, 0
+; LA32PIC-NEXT: pcalau12i $a1, %pc_hi20(.LG$local)
+; LA32PIC-NEXT: ld.w $a0, $a1, %pc_lo12(.LG$local)
; LA32PIC-NEXT: addi.w $a0, $a0, 1
-; LA32PIC-NEXT: st.w $a0, $a1, 0
+; LA32PIC-NEXT: st.w $a0, $a1, %pc_lo12(.LG$local)
; LA32PIC-NEXT: ret
;
; LA64NOPIC-LABEL: load_store_global:
; LA64NOPIC: # %bb.0:
-; LA64NOPIC-NEXT: pcalau12i $a0, %pc_hi20(G)
-; LA64NOPIC-NEXT: addi.d $a1, $a0, %pc_lo12(G)
-; LA64NOPIC-NEXT: ld.w $a0, $a1, 0
+; LA64NOPIC-NEXT: pcalau12i $a1, %pc_hi20(G)
+; LA64NOPIC-NEXT: ld.w $a0, $a1, %pc_lo12(G)
; LA64NOPIC-NEXT: addi.w $a0, $a0, 1
-; LA64NOPIC-NEXT: st.w $a0, $a1, 0
+; LA64NOPIC-NEXT: st.w $a0, $a1, %pc_lo12(G)
; LA64NOPIC-NEXT: ret
;
; LA64PIC-LABEL: load_store_global:
; LA64PIC: # %bb.0:
-; LA64PIC-NEXT: pcalau12i $a0, %pc_hi20(.LG$local)
-; LA64PIC-NEXT: addi.d $a1, $a0, %pc_lo12(.LG$local)
-; LA64PIC-NEXT: ld.w $a0, $a1, 0
+; LA64PIC-NEXT: pcalau12i $a1, %pc_hi20(.LG$local)
+; LA64PIC-NEXT: ld.w $a0, $a1, %pc_lo12(.LG$local)
; LA64PIC-NEXT: addi.w $a0, $a0, 1
-; LA64PIC-NEXT: st.w $a0, $a1, 0
+; LA64PIC-NEXT: st.w $a0, $a1, %pc_lo12(.LG$local)
; LA64PIC-NEXT: ret
%v = load i32, ptr @G
%sum = add i32 %v, 1
diff --git a/llvm/test/CodeGen/LoongArch/machinelicm-address-pseudos.ll b/llvm/test/CodeGen/LoongArch/machinelicm-address-pseudos.ll
index 5248468b6027d5..ba72ef5bd7ba4b 100644
--- a/llvm/test/CodeGen/LoongArch/machinelicm-address-pseudos.ll
+++ b/llvm/test/CodeGen/LoongArch/machinelicm-address-pseudos.ll
@@ -15,11 +15,10 @@ define void @test_la_pcrel(i32 signext %n) {
; LA32: # %bb.0: # %entry
; LA32-NEXT: move $a1, $zero
; LA32-NEXT: pcalau12i $a2, %pc_hi20(l)
-; LA32-NEXT: addi.w $a2, $a2, %pc_lo12(l)
; LA32-NEXT: .p2align 4, , 16
; LA32-NEXT: .LBB0_1: # %loop
; LA32-NEXT: # =>This Inner Loop Header: Depth=1
-; LA32-NEXT: ld.w $zero, $a2, 0
+; LA32-NEXT: ld.w $zero, $a2, %pc_lo12(l)
; LA32-NEXT: addi.w $a1, $a1, 1
; LA32-NEXT: blt $a1, $a0, .LBB0_1
; LA32-NEXT: # %bb.2: # %ret
@@ -29,11 +28,10 @@ define void @test_la_pcrel(i32 signext %n) {
; LA64: # %bb.0: # %entry
; LA64-NEXT: move $a1, $zero
; LA64-NEXT: pcalau12i $a2, %pc_hi20(l)
-; LA64-NEXT: addi.d $a2, $a2, %pc_lo12(l)
; LA64-NEXT: .p2align 4, , 16
; LA64-NEXT: .LBB0_1: # %loop
; LA64-NEXT: # =>This Inner Loop Header: Depth=1
-; LA64-NEXT: ld.w $zero, $a2, 0
+; LA64-NEXT: ld.w $zero, $a2, %pc_lo12(l)
; LA64-NEXT: addi.w $a1, $a1, 1
; LA64-NEXT: blt $a1, $a0, .LBB0_1
; LA64-NEXT: # %bb.2: # %ret
@@ -41,18 +39,17 @@ define void @test_la_pcrel(i32 signext %n) {
;
; LA64LARGE-LABEL: test_la_pcrel:
; LA64LARGE: # %bb.0: # %entry
-; LA64LARGE-NEXT: pcalau12i $a2, %pc_hi20(l)
-; LA64LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(l)
-; LA64LARGE-NEXT: lu32i.d $a1, %pc64_lo20(l)
-; LA64LARGE-NEXT: lu52i.d $a3, $a1, %pc64_hi12(l)
-; LA64LARGE-NEXT: move $a1, $zero
-; LA64LARGE-NEXT: add.d $a2, $a3, $a2
+; LA64LARGE-NEXT: pcalau12i $a1, %pc_hi20(l)
+; LA64LARGE-NEXT: addi.d $a2, $zero, %pc_lo12(l)
+; LA64LARGE-NEXT: lu32i.d $a2, %pc64_lo20(l)
+; LA64LARGE-NEXT: lu52i.d $a2, $a2, %pc64_hi12(l)
+; LA64LARGE-NEXT: move $a3, $zero
; LA64LARGE-NEXT: .p2align 4, , 16
; LA64LARGE-NEXT: .LBB0_1: # %loop
; LA64LARGE-NEXT: # =>This Inner Loop Header: Depth=1
-; LA64LARGE-NEXT: ld.w $zero, $a2, 0
-; LA64LARGE-NEXT: addi.w $a1, $a1, 1
-; LA64LARGE-NEXT: blt $a1, $a0, .LBB0_1
+; LA64LARGE-NEXT: ldx.w $zero, $a2, $a1
+; LA64LARGE-NEXT: addi.w $a3, $a3, 1
+; LA64LARGE-NEXT: blt $a3, $a0, .LBB0_1
; LA64LARGE-NEXT: # %bb.2: # %ret
; LA64LARGE-NEXT: ret
entry:
diff --git a/llvm/test/CodeGen/LoongArch/merge-base-offset.ll b/llvm/test/CodeGen/LoongArch/merge-base-offset.ll
index 48d18dbedcaf26..32a4c4bdd1508a 100644
--- a/llvm/test/CodeGen/LoongArch/merge-base-offset.ll
+++ b/llvm/test/CodeGen/LoongArch/merge-base-offset.ll
@@ -12,15 +12,13 @@ define dso_local signext i8 @load_s8() nounwind {
; LA32-LABEL: load_s8:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_i8)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_i8)
-; LA32-NEXT: ld.b $a0, $a0, 0
+; LA32-NEXT: ld.b $a0, $a0, %pc_lo12(g_i8)
; LA32-NEXT: ret
;
; LA64-LABEL: load_s8:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_i8)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_i8)
-; LA64-NEXT: ld.b $a0, $a0, 0
+; LA64-NEXT: ld.b $a0, $a0, %pc_lo12(g_i8)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: load_s8:
@@ -29,8 +27,7 @@ define dso_local signext i8 @load_s8() nounwind {
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_i8)
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_i8)
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_i8)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: ld.b $a0, $a0, 0
+; LA64-LARGE-NEXT: ldx.b $a0, $a1, $a0
; LA64-LARGE-NEXT: ret
entry:
%0 = load i8, ptr @g_i8
@@ -41,15 +38,13 @@ define dso_local zeroext i8 @load_u8() nounwind {
; LA32-LABEL: load_u8:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_i8)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_i8)
-; LA32-NEXT: ld.bu $a0, $a0, 0
+; LA32-NEXT: ld.bu $a0, $a0, %pc_lo12(g_i8)
; LA32-NEXT: ret
;
; LA64-LABEL: load_u8:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_i8)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_i8)
-; LA64-NEXT: ld.bu $a0, $a0, 0
+; LA64-NEXT: ld.bu $a0, $a0, %pc_lo12(g_i8)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: load_u8:
@@ -58,8 +53,7 @@ define dso_local zeroext i8 @load_u8() nounwind {
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_i8)
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_i8)
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_i8)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: ld.bu $a0, $a0, 0
+; LA64-LARGE-NEXT: ldx.bu $a0, $a1, $a0
; LA64-LARGE-NEXT: ret
entry:
%0 = load i8, ptr @g_i8
@@ -70,17 +64,15 @@ define dso_local void @store_i8() nounwind {
; LA32-LABEL: store_i8:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_i8)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_i8)
; LA32-NEXT: ori $a1, $zero, 1
-; LA32-NEXT: st.b $a1, $a0, 0
+; LA32-NEXT: st.b $a1, $a0, %pc_lo12(g_i8)
; LA32-NEXT: ret
;
; LA64-LABEL: store_i8:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_i8)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_i8)
; LA64-NEXT: ori $a1, $zero, 1
-; LA64-NEXT: st.b $a1, $a0, 0
+; LA64-NEXT: st.b $a1, $a0, %pc_lo12(g_i8)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: store_i8:
@@ -89,9 +81,8 @@ define dso_local void @store_i8() nounwind {
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_i8)
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_i8)
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_i8)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: ori $a1, $zero, 1
-; LA64-LARGE-NEXT: st.b $a1, $a0, 0
+; LA64-LARGE-NEXT: ori $a2, $zero, 1
+; LA64-LARGE-NEXT: stx.b $a2, $a1, $a0
; LA64-LARGE-NEXT: ret
entry:
store i8 1, ptr @g_i8
@@ -104,15 +95,13 @@ define dso_local signext i16 @load_s16() nounwind {
; LA32-LABEL: load_s16:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_i16)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_i16)
-; LA32-NEXT: ld.h $a0, $a0, 0
+; LA32-NEXT: ld.h $a0, $a0, %pc_lo12(g_i16)
; LA32-NEXT: ret
;
; LA64-LABEL: load_s16:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_i16)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_i16)
-; LA64-NEXT: ld.h $a0, $a0, 0
+; LA64-NEXT: ld.h $a0, $a0, %pc_lo12(g_i16)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: load_s16:
@@ -121,8 +110,7 @@ define dso_local signext i16 @load_s16() nounwind {
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_i16)
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_i16)
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_i16)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: ld.h $a0, $a0, 0
+; LA64-LARGE-NEXT: ldx.h $a0, $a1, $a0
; LA64-LARGE-NEXT: ret
entry:
%0 = load i16, ptr @g_i16
@@ -133,15 +121,13 @@ define dso_local zeroext i16 @load_u16() nounwind {
; LA32-LABEL: load_u16:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_i16)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_i16)
-; LA32-NEXT: ld.hu $a0, $a0, 0
+; LA32-NEXT: ld.hu $a0, $a0, %pc_lo12(g_i16)
; LA32-NEXT: ret
;
; LA64-LABEL: load_u16:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_i16)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_i16)
-; LA64-NEXT: ld.hu $a0, $a0, 0
+; LA64-NEXT: ld.hu $a0, $a0, %pc_lo12(g_i16)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: load_u16:
@@ -150,8 +136,7 @@ define dso_local zeroext i16 @load_u16() nounwind {
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_i16)
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_i16)
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_i16)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: ld.hu $a0, $a0, 0
+; LA64-LARGE-NEXT: ldx.hu $a0, $a1, $a0
; LA64-LARGE-NEXT: ret
entry:
%0 = load i16, ptr @g_i16
@@ -162,17 +147,15 @@ define dso_local void @store_i16() nounwind {
; LA32-LABEL: store_i16:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_i16)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_i16)
; LA32-NEXT: ori $a1, $zero, 1
-; LA32-NEXT: st.h $a1, $a0, 0
+; LA32-NEXT: st.h $a1, $a0, %pc_lo12(g_i16)
; LA32-NEXT: ret
;
; LA64-LABEL: store_i16:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_i16)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_i16)
; LA64-NEXT: ori $a1, $zero, 1
-; LA64-NEXT: st.h $a1, $a0, 0
+; LA64-NEXT: st.h $a1, $a0, %pc_lo12(g_i16)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: store_i16:
@@ -181,9 +164,8 @@ define dso_local void @store_i16() nounwind {
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_i16)
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_i16)
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_i16)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: ori $a1, $zero, 1
-; LA64-LARGE-NEXT: st.h $a1, $a0, 0
+; LA64-LARGE-NEXT: ori $a2, $zero, 1
+; LA64-LARGE-NEXT: stx.h $a2, $a1, $a0
; LA64-LARGE-NEXT: ret
entry:
store i16 1, ptr @g_i16
@@ -196,15 +178,13 @@ define dso_local signext i32 @load_s32() nounwind {
; LA32-LABEL: load_s32:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_i32)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_i32)
-; LA32-NEXT: ld.w $a0, $a0, 0
+; LA32-NEXT: ld.w $a0, $a0, %pc_lo12(g_i32)
; LA32-NEXT: ret
;
; LA64-LABEL: load_s32:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_i32)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_i32)
-; LA64-NEXT: ld.w $a0, $a0, 0
+; LA64-NEXT: ld.w $a0, $a0, %pc_lo12(g_i32)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: load_s32:
@@ -213,8 +193,7 @@ define dso_local signext i32 @load_s32() nounwind {
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_i32)
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_i32)
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_i32)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: ld.w $a0, $a0, 0
+; LA64-LARGE-NEXT: ldx.w $a0, $a1, $a0
; LA64-LARGE-NEXT: ret
entry:
%0 = load i32, ptr @g_i32
@@ -225,15 +204,13 @@ define dso_local zeroext i32 @load_u32() nounwind {
; LA32-LABEL: load_u32:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_i32)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_i32)
-; LA32-NEXT: ld.w $a0, $a0, 0
+; LA32-NEXT: ld.w $a0, $a0, %pc_lo12(g_i32)
; LA32-NEXT: ret
;
; LA64-LABEL: load_u32:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_i32)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_i32)
-; LA64-NEXT: ld.wu $a0, $a0, 0
+; LA64-NEXT: ld.wu $a0, $a0, %pc_lo12(g_i32)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: load_u32:
@@ -242,8 +219,7 @@ define dso_local zeroext i32 @load_u32() nounwind {
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_i32)
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_i32)
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_i32)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: ld.wu $a0, $a0, 0
+; LA64-LARGE-NEXT: ldx.wu $a0, $a1, $a0
; LA64-LARGE-NEXT: ret
entry:
%0 = load i32, ptr @g_i32
@@ -254,17 +230,15 @@ define dso_local void @store_i32() nounwind {
; LA32-LABEL: store_i32:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_i32)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_i32)
; LA32-NEXT: ori $a1, $zero, 1
-; LA32-NEXT: st.w $a1, $a0, 0
+; LA32-NEXT: st.w $a1, $a0, %pc_lo12(g_i32)
; LA32-NEXT: ret
;
; LA64-LABEL: store_i32:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_i32)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_i32)
; LA64-NEXT: ori $a1, $zero, 1
-; LA64-NEXT: st.w $a1, $a0, 0
+; LA64-NEXT: st.w $a1, $a0, %pc_lo12(g_i32)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: store_i32:
@@ -273,9 +247,8 @@ define dso_local void @store_i32() nounwind {
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_i32)
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_i32)
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_i32)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: ori $a1, $zero, 1
-; LA64-LARGE-NEXT: st.w $a1, $a0, 0
+; LA64-LARGE-NEXT: ori $a2, $zero, 1
+; LA64-LARGE-NEXT: stx.w $a2, $a1, $a0
; LA64-LARGE-NEXT: ret
entry:
store i32 1, ptr @g_i32
@@ -296,8 +269,7 @@ define dso_local i64 @load_64() nounwind {
; LA64-LABEL: load_64:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_i64)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_i64)
-; LA64-NEXT: ld.d $a0, $a0, 0
+; LA64-NEXT: ld.d $a0, $a0, %pc_lo12(g_i64)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: load_64:
@@ -306,8 +278,7 @@ define dso_local i64 @load_64() nounwind {
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_i64)
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_i64)
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_i64)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: ld.d $a0, $a0, 0
+; LA64-LARGE-NEXT: ldx.d $a0, $a1, $a0
; LA64-LARGE-NEXT: ret
entry:
%0 = load i64, ptr @g_i64
@@ -327,9 +298,8 @@ define dso_local void @store_i64() nounwind {
; LA64-LABEL: store_i64:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_i64)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_i64)
; LA64-NEXT: ori $a1, $zero, 1
-; LA64-NEXT: st.d $a1, $a0, 0
+; LA64-NEXT: st.d $a1, $a0, %pc_lo12(g_i64)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: store_i64:
@@ -338,9 +308,8 @@ define dso_local void @store_i64() nounwind {
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_i64)
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_i64)
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_i64)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: ori $a1, $zero, 1
-; LA64-LARGE-NEXT: st.d $a1, $a0, 0
+; LA64-LARGE-NEXT: ori $a2, $zero, 1
+; LA64-LARGE-NEXT: stx.d $a2, $a1, $a0
; LA64-LARGE-NEXT: ret
entry:
store i64 1, ptr @g_i64
@@ -353,15 +322,13 @@ define dso_local float @load_f32() nounwind {
; LA32-LABEL: load_f32:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_f32)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_f32)
-; LA32-NEXT: fld.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(g_f32)
; LA32-NEXT: ret
;
; LA64-LABEL: load_f32:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_f32)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_f32)
-; LA64-NEXT: fld.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(g_f32)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: load_f32:
@@ -370,8 +337,7 @@ define dso_local float @load_f32() nounwind {
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_f32)
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_f32)
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_f32)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: fld.s $fa0, $a0, 0
+; LA64-LARGE-NEXT: fldx.s $fa0, $a1, $a0
; LA64-LARGE-NEXT: ret
entry:
%0 = load float, ptr @g_f32
@@ -382,17 +348,15 @@ define dso_local void @store_f32() nounwind {
; LA32-LABEL: store_f32:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_f32)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_f32)
; LA32-NEXT: lu12i.w $a1, 260096
-; LA32-NEXT: st.w $a1, $a0, 0
+; LA32-NEXT: st.w $a1, $a0, %pc_lo12(g_f32)
; LA32-NEXT: ret
;
; LA64-LABEL: store_f32:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_f32)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_f32)
; LA64-NEXT: lu12i.w $a1, 260096
-; LA64-NEXT: st.w $a1, $a0, 0
+; LA64-NEXT: st.w $a1, $a0, %pc_lo12(g_f32)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: store_f32:
@@ -401,9 +365,8 @@ define dso_local void @store_f32() nounwind {
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_f32)
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_f32)
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_f32)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: lu12i.w $a1, 260096
-; LA64-LARGE-NEXT: st.w $a1, $a0, 0
+; LA64-LARGE-NEXT: lu12i.w $a2, 260096
+; LA64-LARGE-NEXT: stx.w $a2, $a1, $a0
; LA64-LARGE-NEXT: ret
entry:
store float 1.0, ptr @g_f32
@@ -416,15 +379,13 @@ define dso_local double @load_f64() nounwind {
; LA32-LABEL: load_f64:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_f64)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_f64)
-; LA32-NEXT: fld.d $fa0, $a0, 0
+; LA32-NEXT: fld.d $fa0, $a0, %pc_lo12(g_f64)
; LA32-NEXT: ret
;
; LA64-LABEL: load_f64:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_f64)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_f64)
-; LA64-NEXT: fld.d $fa0, $a0, 0
+; LA64-NEXT: fld.d $fa0, $a0, %pc_lo12(g_f64)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: load_f64:
@@ -433,8 +394,7 @@ define dso_local double @load_f64() nounwind {
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_f64)
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_f64)
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_f64)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: fld.d $fa0, $a0, 0
+; LA64-LARGE-NEXT: fldx.d $fa0, $a1, $a0
; LA64-LARGE-NEXT: ret
entry:
%0 = load double, ptr @g_f64
@@ -445,20 +405,18 @@ define dso_local void @store_f64() nounwind {
; LA32-LABEL: store_f64:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_f64)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_f64)
; LA32-NEXT: addi.w $a1, $zero, 1
; LA32-NEXT: movgr2fr.w $fa0, $a1
; LA32-NEXT: ffint.s.w $fa0, $fa0
; LA32-NEXT: fcvt.d.s $fa0, $fa0
-; LA32-NEXT: fst.d $fa0, $a0, 0
+; LA32-NEXT: fst.d $fa0, $a0, %pc_lo12(g_f64)
; LA32-NEXT: ret
;
; LA64-LABEL: store_f64:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_f64)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_f64)
; LA64-NEXT: lu52i.d $a1, $zero, 1023
-; LA64-NEXT: st.d $a1, $a0, 0
+; LA64-NEXT: st.d $a1, $a0, %pc_lo12(g_f64)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: store_f64:
@@ -467,9 +425,8 @@ define dso_local void @store_f64() nounwind {
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_f64)
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_f64)
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_f64)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: lu52i.d $a1, $zero, 1023
-; LA64-LARGE-NEXT: st.d $a1, $a0, 0
+; LA64-LARGE-NEXT: lu52i.d $a2, $zero, 1023
+; LA64-LARGE-NEXT: stx.d $a2, $a1, $a0
; LA64-LARGE-NEXT: ret
entry:
store double 1.0, ptr @g_f64
@@ -494,11 +451,10 @@ define dso_local void @store_multi() nounwind {
; LA64-LABEL: store_multi:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_m64)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_m64)
; LA64-NEXT: ori $a1, $zero, 1
-; LA64-NEXT: st.d $a1, $a0, 0
+; LA64-NEXT: st.d $a1, $a0, %pc_lo12(g_m64)
; LA64-NEXT: ori $a1, $zero, 2
-; LA64-NEXT: st.d $a1, $a0, 0
+; LA64-NEXT: st.d $a1, $a0, %pc_lo12(g_m64)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: store_multi:
@@ -507,11 +463,10 @@ define dso_local void @store_multi() nounwind {
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_m64)
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_m64)
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_m64)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: ori $a1, $zero, 1
-; LA64-LARGE-NEXT: st.d $a1, $a0, 0
-; LA64-LARGE-NEXT: ori $a1, $zero, 2
-; LA64-LARGE-NEXT: st.d $a1, $a0, 0
+; LA64-LARGE-NEXT: ori $a2, $zero, 1
+; LA64-LARGE-NEXT: stx.d $a2, $a1, $a0
+; LA64-LARGE-NEXT: ori $a2, $zero, 2
+; LA64-LARGE-NEXT: stx.d $a2, $a1, $a0
; LA64-LARGE-NEXT: ret
entry:
store volatile i64 1, ptr @g_m64
@@ -525,17 +480,15 @@ define dso_local void @store_sf32() nounwind {
; LA32-LABEL: store_sf32:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_sf32)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_sf32)
-; LA32-NEXT: fld.s $fa0, $a0, 0
-; LA32-NEXT: fst.s $fa0, $a0, 0
+; LA32-NEXT: fld.s $fa0, $a0, %pc_lo12(g_sf32)
+; LA32-NEXT: fst.s $fa0, $a0, %pc_lo12(g_sf32)
; LA32-NEXT: ret
;
; LA64-LABEL: store_sf32:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_sf32)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_sf32)
-; LA64-NEXT: fld.s $fa0, $a0, 0
-; LA64-NEXT: fst.s $fa0, $a0, 0
+; LA64-NEXT: fld.s $fa0, $a0, %pc_lo12(g_sf32)
+; LA64-NEXT: fst.s $fa0, $a0, %pc_lo12(g_sf32)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: store_sf32:
@@ -544,9 +497,8 @@ define dso_local void @store_sf32() nounwind {
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_sf32)
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_sf32)
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_sf32)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: fld.s $fa0, $a0, 0
-; LA64-LARGE-NEXT: fst.s $fa0, $a0, 0
+; LA64-LARGE-NEXT: fldx.s $fa0, $a1, $a0
+; LA64-LARGE-NEXT: fstx.s $fa0, $a1, $a0
; LA64-LARGE-NEXT: ret
entry:
%0 = load float, ptr @g_sf32
@@ -560,17 +512,15 @@ define dso_local void @store_sf64() nounwind {
; LA32-LABEL: store_sf64:
; LA32: # %bb.0: # %entry
; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_sf64)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_sf64)
-; LA32-NEXT: fld.d $fa0, $a0, 0
-; LA32-NEXT: fst.d $fa0, $a0, 0
+; LA32-NEXT: fld.d $fa0, $a0, %pc_lo12(g_sf64)
+; LA32-NEXT: fst.d $fa0, $a0, %pc_lo12(g_sf64)
; LA32-NEXT: ret
;
; LA64-LABEL: store_sf64:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_sf64)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_sf64)
-; LA64-NEXT: fld.d $fa0, $a0, 0
-; LA64-NEXT: fst.d $fa0, $a0, 0
+; LA64-NEXT: fld.d $fa0, $a0, %pc_lo12(g_sf64)
+; LA64-NEXT: fst.d $fa0, $a0, %pc_lo12(g_sf64)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: store_sf64:
@@ -579,9 +529,8 @@ define dso_local void @store_sf64() nounwind {
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_sf64)
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_sf64)
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_sf64)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: fld.d $fa0, $a0, 0
-; LA64-LARGE-NEXT: fst.d $fa0, $a0, 0
+; LA64-LARGE-NEXT: fldx.d $fa0, $a1, $a0
+; LA64-LARGE-NEXT: fstx.d $fa0, $a1, $a0
; LA64-LARGE-NEXT: ret
entry:
%0 = load double, ptr @g_sf64
@@ -608,10 +557,9 @@ define dso_local void @rmw() nounwind {
; LA64-LABEL: rmw:
; LA64: # %bb.0: # %entry
; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_rmw)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_rmw)
-; LA64-NEXT: ld.d $a1, $a0, 0
+; LA64-NEXT: ld.d $a1, $a0, %pc_lo12(g_rmw)
; LA64-NEXT: addi.d $a1, $a1, 1
-; LA64-NEXT: st.d $a1, $a0, 0
+; LA64-NEXT: st.d $a1, $a0, %pc_lo12(g_rmw)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: rmw:
@@ -620,10 +568,9 @@ define dso_local void @rmw() nounwind {
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_rmw)
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_rmw)
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_rmw)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: ld.d $a1, $a0, 0
-; LA64-LARGE-NEXT: addi.d $a1, $a1, 1
-; LA64-LARGE-NEXT: st.d $a1, $a0, 0
+; LA64-LARGE-NEXT: ldx.d $a2, $a1, $a0
+; LA64-LARGE-NEXT: addi.d $a2, $a2, 1
+; LA64-LARGE-NEXT: stx.d $a2, $a1, $a0
; LA64-LARGE-NEXT: ret
entry:
%0 = load i64, ptr @g_rmw
@@ -637,31 +584,26 @@ entry:
define dso_local void @store_a32() nounwind {
; LA32-LABEL: store_a32:
; LA32: # %bb.0: # %entry
-; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a32)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_a32)
-; LA32-NEXT: lu12i.w $a1, 1
-; LA32-NEXT: add.w $a0, $a0, $a1
+; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a32+4096)
; LA32-NEXT: ori $a1, $zero, 1
-; LA32-NEXT: st.w $a1, $a0, 0
+; LA32-NEXT: st.w $a1, $a0, %pc_lo12(g_a32+4096)
; LA32-NEXT: ret
;
; LA64-LABEL: store_a32:
; LA64: # %bb.0: # %entry
-; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_a32)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_a32)
+; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_a32+4096)
; LA64-NEXT: ori $a1, $zero, 1
-; LA64-NEXT: stptr.w $a1, $a0, 4096
+; LA64-NEXT: st.w $a1, $a0, %pc_lo12(g_a32+4096)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: store_a32:
; LA64-LARGE: # %bb.0: # %entry
-; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(g_a32)
-; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_a32)
-; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_a32)
-; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_a32)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: ori $a1, $zero, 1
-; LA64-LARGE-NEXT: stptr.w $a1, $a0, 4096
+; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(g_a32+4096)
+; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_a32+4096)
+; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_a32+4096)
+; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_a32+4096)
+; LA64-LARGE-NEXT: ori $a2, $zero, 1
+; LA64-LARGE-NEXT: stx.w $a2, $a1, $a0
; LA64-LARGE-NEXT: ret
entry:
store i32 1, ptr getelementptr inbounds ([1 x i32], ptr @g_a32, i32 1024), align 4
@@ -714,48 +656,44 @@ entry:
define dso_local void @control_flow_with_mem_access() nounwind {
; LA32-LABEL: control_flow_with_mem_access:
; LA32: # %bb.0: # %entry
-; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a32)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_a32)
-; LA32-NEXT: ld.w $a1, $a0, 4
+; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a32+4)
+; LA32-NEXT: ld.w $a1, $a0, %pc_lo12(g_a32+4)
; LA32-NEXT: ori $a2, $zero, 1
; LA32-NEXT: blt $a1, $a2, .LBB21_2
; LA32-NEXT: # %bb.1: # %if.then
; LA32-NEXT: ori $a1, $zero, 10
-; LA32-NEXT: st.w $a1, $a0, 4
+; LA32-NEXT: st.w $a1, $a0, %pc_lo12(g_a32+4)
; LA32-NEXT: .LBB21_2: # %if.end
; LA32-NEXT: ret
;
; LA64-LABEL: control_flow_with_mem_access:
; LA64: # %bb.0: # %entry
-; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_a32)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_a32)
-; LA64-NEXT: ld.w $a1, $a0, 4
+; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_a32+4)
+; LA64-NEXT: ld.w $a1, $a0, %pc_lo12(g_a32+4)
; LA64-NEXT: ori $a2, $zero, 1
; LA64-NEXT: blt $a1, $a2, .LBB21_2
; LA64-NEXT: # %bb.1: # %if.then
; LA64-NEXT: ori $a1, $zero, 10
-; LA64-NEXT: st.w $a1, $a0, 4
+; LA64-NEXT: st.w $a1, $a0, %pc_lo12(g_a32+4)
; LA64-NEXT: .LBB21_2: # %if.end
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: control_flow_with_mem_access:
; LA64-LARGE: # %bb.0: # %entry
-; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(g_a32)
-; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_a32)
-; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_a32)
-; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_a32)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: ld.w $a0, $a0, 4
+; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(g_a32+4)
+; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_a32+4)
+; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_a32+4)
+; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_a32+4)
+; LA64-LARGE-NEXT: ldx.w $a0, $a1, $a0
; LA64-LARGE-NEXT: ori $a1, $zero, 1
; LA64-LARGE-NEXT: blt $a0, $a1, .LBB21_2
; LA64-LARGE-NEXT: # %bb.1: # %if.then
-; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(g_a32)
-; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_a32)
-; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_a32)
-; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_a32)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: ori $a1, $zero, 10
-; LA64-LARGE-NEXT: st.w $a1, $a0, 4
+; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(g_a32+4)
+; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_a32+4)
+; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_a32+4)
+; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_a32+4)
+; LA64-LARGE-NEXT: ori $a2, $zero, 10
+; LA64-LARGE-NEXT: stx.w $a2, $a1, $a0
; LA64-LARGE-NEXT: .LBB21_2: # %if.end
; LA64-LARGE-NEXT: ret
entry:
@@ -777,8 +715,7 @@ define dso_local ptr @load_ba_1() nounwind {
; LA32-NEXT: .Ltmp0: # Block address taken
; LA32-NEXT: # %bb.1: # %label
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.Ltmp0)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.Ltmp0)
-; LA32-NEXT: ld.w $a0, $a0, 0
+; LA32-NEXT: ld.w $a0, $a0, %pc_lo12(.Ltmp0)
; LA32-NEXT: ret
;
; LA64-LABEL: load_ba_1:
@@ -786,8 +723,7 @@ define dso_local ptr @load_ba_1() nounwind {
; LA64-NEXT: .Ltmp0: # Block address taken
; LA64-NEXT: # %bb.1: # %label
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.Ltmp0)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.Ltmp0)
-; LA64-NEXT: ld.d $a0, $a0, 0
+; LA64-NEXT: ld.d $a0, $a0, %pc_lo12(.Ltmp0)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: load_ba_1:
@@ -798,8 +734,7 @@ define dso_local ptr @load_ba_1() nounwind {
; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(.Ltmp0)
; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(.Ltmp0)
; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(.Ltmp0)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: ld.d $a0, $a0, 0
+; LA64-LARGE-NEXT: ldx.d $a0, $a1, $a0
; LA64-LARGE-NEXT: ret
entry:
br label %label
@@ -813,30 +748,27 @@ define dso_local ptr @load_ba_2() nounwind {
; LA32: # %bb.0: # %entry
; LA32-NEXT: .Ltmp1: # Block address taken
; LA32-NEXT: # %bb.1: # %label
-; LA32-NEXT: pcalau12i $a0, %pc_hi20(.Ltmp1)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.Ltmp1)
-; LA32-NEXT: ld.w $a0, $a0, 8
+; LA32-NEXT: pcalau12i $a0, %pc_hi20(.Ltmp1+8)
+; LA32-NEXT: ld.w $a0, $a0, %pc_lo12(.Ltmp1+8)
; LA32-NEXT: ret
;
; LA64-LABEL: load_ba_2:
; LA64: # %bb.0: # %entry
; LA64-NEXT: .Ltmp1: # Block address taken
; LA64-NEXT: # %bb.1: # %label
-; LA64-NEXT: pcalau12i $a0, %pc_hi20(.Ltmp1)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.Ltmp1)
-; LA64-NEXT: ld.d $a0, $a0, 8
+; LA64-NEXT: pcalau12i $a0, %pc_hi20(.Ltmp1+8)
+; LA64-NEXT: ld.d $a0, $a0, %pc_lo12(.Ltmp1+8)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: load_ba_2:
; LA64-LARGE: # %bb.0: # %entry
; LA64-LARGE-NEXT: .Ltmp1: # Block address taken
; LA64-LARGE-NEXT: # %bb.1: # %label
-; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(.Ltmp1)
-; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(.Ltmp1)
-; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(.Ltmp1)
-; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(.Ltmp1)
-; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: ld.d $a0, $a0, 8
+; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(.Ltmp1+8)
+; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(.Ltmp1+8)
+; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(.Ltmp1+8)
+; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(.Ltmp1+8)
+; LA64-LARGE-NEXT: ldx.d $a0, $a1, $a0
; LA64-LARGE-NEXT: ret
entry:
br label %label
@@ -850,26 +782,23 @@ label:
define dso_local ptr @load_addr_offset_1() nounwind {
; LA32-LABEL: load_addr_offset_1:
; LA32: # %bb.0: # %entry
-; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_a64)
-; LA32-NEXT: addi.w $a0, $a0, 8
+; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a64+8)
+; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_a64+8)
; LA32-NEXT: ret
;
; LA64-LABEL: load_addr_offset_1:
; LA64: # %bb.0: # %entry
-; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_a64)
-; LA64-NEXT: addi.d $a0, $a0, 8
+; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_a64+8)
+; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_a64+8)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: load_addr_offset_1:
; LA64-LARGE: # %bb.0: # %entry
-; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
-; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_a64)
-; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_a64)
-; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_a64)
+; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(g_a64+8)
+; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_a64+8)
+; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_a64+8)
+; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_a64+8)
; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: addi.d $a0, $a0, 8
; LA64-LARGE-NEXT: ret
entry:
ret ptr getelementptr inbounds ([1 x i64], ptr @g_a64, i64 1)
@@ -878,29 +807,23 @@ entry:
define dso_local ptr @load_addr_offset_257() nounwind {
; LA32-LABEL: load_addr_offset_257:
; LA32: # %bb.0: # %entry
-; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_a64)
-; LA32-NEXT: addi.w $a0, $a0, 2047
-; LA32-NEXT: addi.w $a0, $a0, 9
+; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a64+2056)
+; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_a64+2056)
; LA32-NEXT: ret
;
; LA64-LABEL: load_addr_offset_257:
; LA64: # %bb.0: # %entry
-; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_a64)
-; LA64-NEXT: addi.d $a0, $a0, 2047
-; LA64-NEXT: addi.d $a0, $a0, 9
+; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_a64+2056)
+; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_a64+2056)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: load_addr_offset_257:
; LA64-LARGE: # %bb.0: # %entry
-; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
-; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_a64)
-; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_a64)
-; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_a64)
+; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(g_a64+2056)
+; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_a64+2056)
+; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_a64+2056)
+; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_a64+2056)
; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: addi.d $a0, $a0, 2047
-; LA64-LARGE-NEXT: addi.d $a0, $a0, 9
; LA64-LARGE-NEXT: ret
entry:
ret ptr getelementptr inbounds ([1 x i64], ptr @g_a64, i64 257)
@@ -909,27 +832,23 @@ entry:
define dso_local ptr @load_addr_offset_1048576() nounwind {
; LA32-LABEL: load_addr_offset_1048576:
; LA32: # %bb.0: # %entry
-; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_a64)
-; LA32-NEXT: lu12i.w $a1, 2048
-; LA32-NEXT: add.w $a0, $a0, $a1
+; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a64+8388608)
+; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_a64+8388608)
; LA32-NEXT: ret
;
; LA64-LABEL: load_addr_offset_1048576:
; LA64: # %bb.0: # %entry
-; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_a64)
-; LA64-NEXT: addu16i.d $a0, $a0, 128
+; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_a64+8388608)
+; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_a64+8388608)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: load_addr_offset_1048576:
; LA64-LARGE: # %bb.0: # %entry
-; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
-; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_a64)
-; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_a64)
-; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_a64)
+; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(g_a64+8388608)
+; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_a64+8388608)
+; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_a64+8388608)
+; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_a64+8388608)
; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: addu16i.d $a0, $a0, 128
; LA64-LARGE-NEXT: ret
entry:
ret ptr getelementptr inbounds ([1 x i64], ptr @g_a64, i64 1048576)
@@ -938,30 +857,23 @@ entry:
define dso_local ptr @load_addr_offset_1048577() nounwind {
; LA32-LABEL: load_addr_offset_1048577:
; LA32: # %bb.0: # %entry
-; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_a64)
-; LA32-NEXT: lu12i.w $a1, 2048
-; LA32-NEXT: ori $a1, $a1, 8
-; LA32-NEXT: add.w $a0, $a0, $a1
+; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a64+8388616)
+; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_a64+8388616)
; LA32-NEXT: ret
;
; LA64-LABEL: load_addr_offset_1048577:
; LA64: # %bb.0: # %entry
-; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_a64)
-; LA64-NEXT: addu16i.d $a0, $a0, 128
-; LA64-NEXT: addi.d $a0, $a0, 8
+; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_a64+8388616)
+; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_a64+8388616)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: load_addr_offset_1048577:
; LA64-LARGE: # %bb.0: # %entry
-; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
-; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_a64)
-; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_a64)
-; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_a64)
+; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(g_a64+8388616)
+; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_a64+8388616)
+; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_a64+8388616)
+; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_a64+8388616)
; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: addu16i.d $a0, $a0, 128
-; LA64-LARGE-NEXT: addi.d $a0, $a0, 8
; LA64-LARGE-NEXT: ret
entry:
ret ptr getelementptr inbounds ([1 x i64], ptr @g_a64, i64 1048577)
@@ -970,29 +882,23 @@ entry:
define dso_local ptr @load_addr_offset_268432896() nounwind {
; LA32-LABEL: load_addr_offset_268432896:
; LA32: # %bb.0: # %entry
-; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_a64)
-; LA32-NEXT: lu12i.w $a1, 524283
-; LA32-NEXT: add.w $a0, $a0, $a1
+; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a64+2147463168)
+; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_a64+2147463168)
; LA32-NEXT: ret
;
; LA64-LABEL: load_addr_offset_268432896:
; LA64: # %bb.0: # %entry
-; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_a64)
-; LA64-NEXT: lu12i.w $a1, 524283
-; LA64-NEXT: add.d $a0, $a0, $a1
+; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_a64+2147463168)
+; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_a64+2147463168)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: load_addr_offset_268432896:
; LA64-LARGE: # %bb.0: # %entry
-; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
-; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_a64)
-; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_a64)
-; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_a64)
+; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(g_a64+2147463168)
+; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_a64+2147463168)
+; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_a64+2147463168)
+; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_a64+2147463168)
; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: lu12i.w $a1, 524283
-; LA64-LARGE-NEXT: add.d $a0, $a0, $a1
; LA64-LARGE-NEXT: ret
entry:
ret ptr getelementptr inbounds ([1 x i64], ptr @g_a64, i64 268432896)
@@ -1001,32 +907,23 @@ entry:
define dso_local ptr @load_addr_offset_268432897() nounwind {
; LA32-LABEL: load_addr_offset_268432897:
; LA32: # %bb.0: # %entry
-; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_a64)
-; LA32-NEXT: lu12i.w $a1, 524283
-; LA32-NEXT: ori $a1, $a1, 8
-; LA32-NEXT: add.w $a0, $a0, $a1
+; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a64+2147463176)
+; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_a64+2147463176)
; LA32-NEXT: ret
;
; LA64-LABEL: load_addr_offset_268432897:
; LA64: # %bb.0: # %entry
-; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
-; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_a64)
-; LA64-NEXT: lu12i.w $a1, 524283
-; LA64-NEXT: ori $a1, $a1, 8
-; LA64-NEXT: add.d $a0, $a0, $a1
+; LA64-NEXT: pcalau12i $a0, %pc_hi20(g_a64+2147463176)
+; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(g_a64+2147463176)
; LA64-NEXT: ret
;
; LA64-LARGE-LABEL: load_addr_offset_268432897:
; LA64-LARGE: # %bb.0: # %entry
-; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
-; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_a64)
-; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_a64)
-; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_a64)
+; LA64-LARGE-NEXT: pcalau12i $a0, %pc_hi20(g_a64+2147463176)
+; LA64-LARGE-NEXT: addi.d $a1, $zero, %pc_lo12(g_a64+2147463176)
+; LA64-LARGE-NEXT: lu32i.d $a1, %pc64_lo20(g_a64+2147463176)
+; LA64-LARGE-NEXT: lu52i.d $a1, $a1, %pc64_hi12(g_a64+2147463176)
; LA64-LARGE-NEXT: add.d $a0, $a1, $a0
-; LA64-LARGE-NEXT: lu12i.w $a1, 524283
-; LA64-LARGE-NEXT: ori $a1, $a1, 8
-; LA64-LARGE-NEXT: add.d $a0, $a0, $a1
; LA64-LARGE-NEXT: ret
entry:
ret ptr getelementptr inbounds ([1 x i64], ptr @g_a64, i64 268432897)
@@ -1035,11 +932,8 @@ entry:
define dso_local ptr @load_addr_offset_9380351707272() nounwind {
; LA32-LABEL: load_addr_offset_9380351707272:
; LA32: # %bb.0: # %entry
-; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_a64)
-; LA32-NEXT: lu12i.w $a1, 279556
-; LA32-NEXT: ori $a1, $a1, 1088
-; LA32-NEXT: add.w $a0, $a0, $a1
+; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a64+1145062464)
+; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_a64+1145062464)
; LA32-NEXT: ret
;
; LA64-LABEL: load_addr_offset_9380351707272:
@@ -1071,11 +965,8 @@ entry:
define dso_local ptr @load_addr_offset_614750729487779976() nounwind {
; LA32-LABEL: load_addr_offset_614750729487779976:
; LA32: # %bb.0: # %entry
-; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a64)
-; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_a64)
-; LA32-NEXT: lu12i.w $a1, 279556
-; LA32-NEXT: ori $a1, $a1, 1088
-; LA32-NEXT: add.w $a0, $a0, $a1
+; LA32-NEXT: pcalau12i $a0, %pc_hi20(g_a64+1145062464)
+; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(g_a64+1145062464)
; LA32-NEXT: ret
;
; LA64-LABEL: load_addr_offset_614750729487779976:
diff --git a/llvm/test/CodeGen/LoongArch/opt-pipeline.ll b/llvm/test/CodeGen/LoongArch/opt-pipeline.ll
index 391888a38daf69..e07a334888c189 100644
--- a/llvm/test/CodeGen/LoongArch/opt-pipeline.ll
+++ b/llvm/test/CodeGen/LoongArch/opt-pipeline.ll
@@ -105,6 +105,7 @@
; LAXX-NEXT: Remove dead machine instructions
; LA64-NEXT: LoongArch Optimize W Instructions
; LAXX-NEXT: LoongArch Pre-RA pseudo instruction expansion pass
+; LAXX-NEXT: LoongArch Merge Base Offset
; LAXX-NEXT: Detect Dead Lanes
; LAXX-NEXT: Init Undef Pass
; LAXX-NEXT: Process Implicit Definitions
diff --git a/llvm/test/CodeGen/LoongArch/psabi-restricted-scheduling.ll b/llvm/test/CodeGen/LoongArch/psabi-restricted-scheduling.ll
index b03a523fb79a9b..a7873f466bee3f 100644
--- a/llvm/test/CodeGen/LoongArch/psabi-restricted-scheduling.ll
+++ b/llvm/test/CodeGen/LoongArch/psabi-restricted-scheduling.ll
@@ -25,8 +25,7 @@ define void @foo() nounwind {
; MEDIUM_NO_SCH-NEXT: ld.d $a0, $a0, %got_pc_lo12(G)
; MEDIUM_NO_SCH-NEXT: ld.d $zero, $a0, 0
; MEDIUM_NO_SCH-NEXT: pcalau12i $a0, %pc_hi20(.Lg$local)
-; MEDIUM_NO_SCH-NEXT: addi.d $a0, $a0, %pc_lo12(.Lg$local)
-; MEDIUM_NO_SCH-NEXT: ld.d $zero, $a0, 0
+; MEDIUM_NO_SCH-NEXT: ld.d $zero, $a0, %pc_lo12(.Lg$local)
; MEDIUM_NO_SCH-NEXT: ori $a0, $zero, 1
; MEDIUM_NO_SCH-NEXT: pcaddu18i $ra, %call36(bar)
; MEDIUM_NO_SCH-NEXT: jirl $ra, $ra, 0
@@ -55,8 +54,7 @@ define void @foo() nounwind {
; MEDIUM_SCH-NEXT: ld.d $a0, $a0, %got_pc_lo12(G)
; MEDIUM_SCH-NEXT: ld.d $zero, $a0, 0
; MEDIUM_SCH-NEXT: pcalau12i $a0, %pc_hi20(.Lg$local)
-; MEDIUM_SCH-NEXT: addi.d $a0, $a0, %pc_lo12(.Lg$local)
-; MEDIUM_SCH-NEXT: ld.d $zero, $a0, 0
+; MEDIUM_SCH-NEXT: ld.d $zero, $a0, %pc_lo12(.Lg$local)
; MEDIUM_SCH-NEXT: ori $a0, $zero, 1
; MEDIUM_SCH-NEXT: pcaddu18i $ra, %call36(bar)
; MEDIUM_SCH-NEXT: jirl $ra, $ra, 0
@@ -91,8 +89,7 @@ define void @foo() nounwind {
; LARGE_NO_SCH-NEXT: addi.d $a1, $zero, %pc_lo12(.Lg$local)
; LARGE_NO_SCH-NEXT: lu32i.d $a1, %pc64_lo20(.Lg$local)
; LARGE_NO_SCH-NEXT: lu52i.d $a1, $a1, %pc64_hi12(.Lg$local)
-; LARGE_NO_SCH-NEXT: add.d $a0, $a1, $a0
-; LARGE_NO_SCH-NEXT: ld.d $zero, $a0, 0
+; LARGE_NO_SCH-NEXT: ldx.d $zero, $a1, $a0
; LARGE_NO_SCH-NEXT: ori $a0, $zero, 1
; LARGE_NO_SCH-NEXT: pcalau12i $a1, %got_pc_hi20(bar)
; LARGE_NO_SCH-NEXT: addi.d $ra, $zero, %got_pc_lo12(bar)
@@ -148,8 +145,7 @@ define void @foo() nounwind {
; LARGE_SCH-NEXT: addi.d $a1, $zero, %pc_lo12(.Lg$local)
; LARGE_SCH-NEXT: lu32i.d $a1, %pc64_lo20(.Lg$local)
; LARGE_SCH-NEXT: lu52i.d $a1, $a1, %pc64_hi12(.Lg$local)
-; LARGE_SCH-NEXT: add.d $a0, $a1, $a0
-; LARGE_SCH-NEXT: ld.d $zero, $a0, 0
+; LARGE_SCH-NEXT: ldx.d $zero, $a1, $a0
; LARGE_SCH-NEXT: ori $a0, $zero, 1
; LARGE_SCH-NEXT: pcalau12i $a1, %got_pc_hi20(bar)
; LARGE_SCH-NEXT: addi.d $ra, $zero, %got_pc_lo12(bar)
diff --git a/llvm/test/CodeGen/LoongArch/vector-fp-imm.ll b/llvm/test/CodeGen/LoongArch/vector-fp-imm.ll
index 0a401ebe5f6b2a..8dd1ec465c13ad 100644
--- a/llvm/test/CodeGen/LoongArch/vector-fp-imm.ll
+++ b/llvm/test/CodeGen/LoongArch/vector-fp-imm.ll
@@ -94,8 +94,7 @@ define void @test_f2(ptr %P, ptr %S) nounwind {
; LA32F-NEXT: fld.s $fa1, $a0, 0
; LA32F-NEXT: addi.w $a0, $zero, 1
; LA32F-NEXT: pcalau12i $a2, %pc_hi20(.LCPI1_0)
-; LA32F-NEXT: addi.w $a2, $a2, %pc_lo12(.LCPI1_0)
-; LA32F-NEXT: fld.s $fa2, $a2, 0
+; LA32F-NEXT: fld.s $fa2, $a2, %pc_lo12(.LCPI1_0)
; LA32F-NEXT: movgr2fr.w $fa3, $a0
; LA32F-NEXT: ffint.s.w $fa3, $fa3
; LA32F-NEXT: fadd.s $fa1, $fa1, $fa3
@@ -110,8 +109,7 @@ define void @test_f2(ptr %P, ptr %S) nounwind {
; LA32D-NEXT: fld.s $fa1, $a0, 0
; LA32D-NEXT: addi.w $a0, $zero, 1
; LA32D-NEXT: pcalau12i $a2, %pc_hi20(.LCPI1_0)
-; LA32D-NEXT: addi.w $a2, $a2, %pc_lo12(.LCPI1_0)
-; LA32D-NEXT: fld.s $fa2, $a2, 0
+; LA32D-NEXT: fld.s $fa2, $a2, %pc_lo12(.LCPI1_0)
; LA32D-NEXT: movgr2fr.w $fa3, $a0
; LA32D-NEXT: ffint.s.w $fa3, $fa3
; LA32D-NEXT: fadd.s $fa1, $fa1, $fa3
@@ -126,8 +124,7 @@ define void @test_f2(ptr %P, ptr %S) nounwind {
; LA64F-NEXT: fld.s $fa1, $a0, 0
; LA64F-NEXT: addi.w $a0, $zero, 1
; LA64F-NEXT: pcalau12i $a2, %pc_hi20(.LCPI1_0)
-; LA64F-NEXT: addi.d $a2, $a2, %pc_lo12(.LCPI1_0)
-; LA64F-NEXT: fld.s $fa2, $a2, 0
+; LA64F-NEXT: fld.s $fa2, $a2, %pc_lo12(.LCPI1_0)
; LA64F-NEXT: movgr2fr.w $fa3, $a0
; LA64F-NEXT: ffint.s.w $fa3, $fa3
; LA64F-NEXT: fadd.s $fa1, $fa1, $fa3
@@ -142,8 +139,7 @@ define void @test_f2(ptr %P, ptr %S) nounwind {
; LA64D-NEXT: fld.s $fa1, $a0, 0
; LA64D-NEXT: addi.w $a0, $zero, 1
; LA64D-NEXT: pcalau12i $a2, %pc_hi20(.LCPI1_0)
-; LA64D-NEXT: addi.d $a2, $a2, %pc_lo12(.LCPI1_0)
-; LA64D-NEXT: fld.s $fa2, $a2, 0
+; LA64D-NEXT: fld.s $fa2, $a2, %pc_lo12(.LCPI1_0)
; LA64D-NEXT: movgr2fr.w $fa3, $a0
; LA64D-NEXT: ffint.s.w $fa3, $fa3
; LA64D-NEXT: fadd.s $fa1, $fa1, $fa3
@@ -168,14 +164,11 @@ define void @test_f4(ptr %P, ptr %S) nounwind {
; LA32F-NEXT: movgr2fr.w $fa4, $a0
; LA32F-NEXT: ffint.s.w $fa4, $fa4
; LA32F-NEXT: pcalau12i $a0, %pc_hi20(.LCPI2_0)
-; LA32F-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI2_0)
-; LA32F-NEXT: fld.s $fa5, $a0, 0
+; LA32F-NEXT: fld.s $fa5, $a0, %pc_lo12(.LCPI2_0)
; LA32F-NEXT: pcalau12i $a0, %pc_hi20(.LCPI2_1)
-; LA32F-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI2_1)
-; LA32F-NEXT: fld.s $fa6, $a0, 0
+; LA32F-NEXT: fld.s $fa6, $a0, %pc_lo12(.LCPI2_1)
; LA32F-NEXT: pcalau12i $a0, %pc_hi20(.LCPI2_2)
-; LA32F-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI2_2)
-; LA32F-NEXT: fld.s $fa7, $a0, 0
+; LA32F-NEXT: fld.s $fa7, $a0, %pc_lo12(.LCPI2_2)
; LA32F-NEXT: fadd.s $fa3, $fa3, $fa4
; LA32F-NEXT: fadd.s $fa2, $fa2, $fa5
; LA32F-NEXT: fadd.s $fa1, $fa1, $fa6
@@ -196,14 +189,11 @@ define void @test_f4(ptr %P, ptr %S) nounwind {
; LA32D-NEXT: movgr2fr.w $fa4, $a0
; LA32D-NEXT: ffint.s.w $fa4, $fa4
; LA32D-NEXT: pcalau12i $a0, %pc_hi20(.LCPI2_0)
-; LA32D-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI2_0)
-; LA32D-NEXT: fld.s $fa5, $a0, 0
+; LA32D-NEXT: fld.s $fa5, $a0, %pc_lo12(.LCPI2_0)
; LA32D-NEXT: pcalau12i $a0, %pc_hi20(.LCPI2_1)
-; LA32D-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI2_1)
-; LA32D-NEXT: fld.s $fa6, $a0, 0
+; LA32D-NEXT: fld.s $fa6, $a0, %pc_lo12(.LCPI2_1)
; LA32D-NEXT: pcalau12i $a0, %pc_hi20(.LCPI2_2)
-; LA32D-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI2_2)
-; LA32D-NEXT: fld.s $fa7, $a0, 0
+; LA32D-NEXT: fld.s $fa7, $a0, %pc_lo12(.LCPI2_2)
; LA32D-NEXT: fadd.s $fa3, $fa3, $fa4
; LA32D-NEXT: fadd.s $fa2, $fa2, $fa5
; LA32D-NEXT: fadd.s $fa1, $fa1, $fa6
@@ -224,14 +214,11 @@ define void @test_f4(ptr %P, ptr %S) nounwind {
; LA64F-NEXT: movgr2fr.w $fa4, $a0
; LA64F-NEXT: ffint.s.w $fa4, $fa4
; LA64F-NEXT: pcalau12i $a0, %pc_hi20(.LCPI2_0)
-; LA64F-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI2_0)
-; LA64F-NEXT: fld.s $fa5, $a0, 0
+; LA64F-NEXT: fld.s $fa5, $a0, %pc_lo12(.LCPI2_0)
; LA64F-NEXT: pcalau12i $a0, %pc_hi20(.LCPI2_1)
-; LA64F-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI2_1)
-; LA64F-NEXT: fld.s $fa6, $a0, 0
+; LA64F-NEXT: fld.s $fa6, $a0, %pc_lo12(.LCPI2_1)
; LA64F-NEXT: pcalau12i $a0, %pc_hi20(.LCPI2_2)
-; LA64F-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI2_2)
-; LA64F-NEXT: fld.s $fa7, $a0, 0
+; LA64F-NEXT: fld.s $fa7, $a0, %pc_lo12(.LCPI2_2)
; LA64F-NEXT: fadd.s $fa3, $fa3, $fa4
; LA64F-NEXT: fadd.s $fa2, $fa2, $fa5
; LA64F-NEXT: fadd.s $fa1, $fa1, $fa6
@@ -252,14 +239,11 @@ define void @test_f4(ptr %P, ptr %S) nounwind {
; LA64D-NEXT: movgr2fr.w $fa4, $a0
; LA64D-NEXT: ffint.s.w $fa4, $fa4
; LA64D-NEXT: pcalau12i $a0, %pc_hi20(.LCPI2_0)
-; LA64D-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI2_0)
-; LA64D-NEXT: fld.s $fa5, $a0, 0
+; LA64D-NEXT: fld.s $fa5, $a0, %pc_lo12(.LCPI2_0)
; LA64D-NEXT: pcalau12i $a0, %pc_hi20(.LCPI2_1)
-; LA64D-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI2_1)
-; LA64D-NEXT: fld.s $fa6, $a0, 0
+; LA64D-NEXT: fld.s $fa6, $a0, %pc_lo12(.LCPI2_1)
; LA64D-NEXT: pcalau12i $a0, %pc_hi20(.LCPI2_2)
-; LA64D-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI2_2)
-; LA64D-NEXT: fld.s $fa7, $a0, 0
+; LA64D-NEXT: fld.s $fa7, $a0, %pc_lo12(.LCPI2_2)
; LA64D-NEXT: fadd.s $fa3, $fa3, $fa4
; LA64D-NEXT: fadd.s $fa2, $fa2, $fa5
; LA64D-NEXT: fadd.s $fa1, $fa1, $fa6
@@ -281,14 +265,11 @@ define void @test_f8(ptr %P, ptr %S) nounwind {
; LA32F-NEXT: addi.w $a2, $zero, 1
; LA32F-NEXT: movgr2fr.w $fa0, $a2
; LA32F-NEXT: pcalau12i $a2, %pc_hi20(.LCPI3_0)
-; LA32F-NEXT: addi.w $a2, $a2, %pc_lo12(.LCPI3_0)
-; LA32F-NEXT: fld.s $fa1, $a2, 0
+; LA32F-NEXT: fld.s $fa1, $a2, %pc_lo12(.LCPI3_0)
; LA32F-NEXT: pcalau12i $a2, %pc_hi20(.LCPI3_1)
-; LA32F-NEXT: addi.w $a2, $a2, %pc_lo12(.LCPI3_1)
-; LA32F-NEXT: fld.s $fa2, $a2, 0
+; LA32F-NEXT: fld.s $fa2, $a2, %pc_lo12(.LCPI3_1)
; LA32F-NEXT: pcalau12i $a2, %pc_hi20(.LCPI3_2)
-; LA32F-NEXT: addi.w $a2, $a2, %pc_lo12(.LCPI3_2)
-; LA32F-NEXT: fld.s $fa3, $a2, 0
+; LA32F-NEXT: fld.s $fa3, $a2, %pc_lo12(.LCPI3_2)
; LA32F-NEXT: fld.s $fa4, $a0, 28
; LA32F-NEXT: fld.s $fa5, $a0, 24
; LA32F-NEXT: fld.s $fa6, $a0, 12
@@ -321,14 +302,11 @@ define void @test_f8(ptr %P, ptr %S) nounwind {
; LA32D-NEXT: addi.w $a2, $zero, 1
; LA32D-NEXT: movgr2fr.w $fa0, $a2
; LA32D-NEXT: pcalau12i $a2, %pc_hi20(.LCPI3_0)
-; LA32D-NEXT: addi.w $a2, $a2, %pc_lo12(.LCPI3_0)
-; LA32D-NEXT: fld.s $fa1, $a2, 0
+; LA32D-NEXT: fld.s $fa1, $a2, %pc_lo12(.LCPI3_0)
; LA32D-NEXT: pcalau12i $a2, %pc_hi20(.LCPI3_1)
-; LA32D-NEXT: addi.w $a2, $a2, %pc_lo12(.LCPI3_1)
-; LA32D-NEXT: fld.s $fa2, $a2, 0
+; LA32D-NEXT: fld.s $fa2, $a2, %pc_lo12(.LCPI3_1)
; LA32D-NEXT: pcalau12i $a2, %pc_hi20(.LCPI3_2)
-; LA32D-NEXT: addi.w $a2, $a2, %pc_lo12(.LCPI3_2)
-; LA32D-NEXT: fld.s $fa3, $a2, 0
+; LA32D-NEXT: fld.s $fa3, $a2, %pc_lo12(.LCPI3_2)
; LA32D-NEXT: fld.s $fa4, $a0, 28
; LA32D-NEXT: fld.s $fa5, $a0, 24
; LA32D-NEXT: fld.s $fa6, $a0, 12
@@ -361,14 +339,11 @@ define void @test_f8(ptr %P, ptr %S) nounwind {
; LA64F-NEXT: addi.w $a2, $zero, 1
; LA64F-NEXT: movgr2fr.w $fa0, $a2
; LA64F-NEXT: pcalau12i $a2, %pc_hi20(.LCPI3_0)
-; LA64F-NEXT: addi.d $a2, $a2, %pc_lo12(.LCPI3_0)
-; LA64F-NEXT: fld.s $fa1, $a2, 0
+; LA64F-NEXT: fld.s $fa1, $a2, %pc_lo12(.LCPI3_0)
; LA64F-NEXT: pcalau12i $a2, %pc_hi20(.LCPI3_1)
-; LA64F-NEXT: addi.d $a2, $a2, %pc_lo12(.LCPI3_1)
-; LA64F-NEXT: fld.s $fa2, $a2, 0
+; LA64F-NEXT: fld.s $fa2, $a2, %pc_lo12(.LCPI3_1)
; LA64F-NEXT: pcalau12i $a2, %pc_hi20(.LCPI3_2)
-; LA64F-NEXT: addi.d $a2, $a2, %pc_lo12(.LCPI3_2)
-; LA64F-NEXT: fld.s $fa3, $a2, 0
+; LA64F-NEXT: fld.s $fa3, $a2, %pc_lo12(.LCPI3_2)
; LA64F-NEXT: fld.s $fa4, $a0, 28
; LA64F-NEXT: fld.s $fa5, $a0, 24
; LA64F-NEXT: fld.s $fa6, $a0, 12
@@ -401,14 +376,11 @@ define void @test_f8(ptr %P, ptr %S) nounwind {
; LA64D-NEXT: addi.w $a2, $zero, 1
; LA64D-NEXT: movgr2fr.w $fa0, $a2
; LA64D-NEXT: pcalau12i $a2, %pc_hi20(.LCPI3_0)
-; LA64D-NEXT: addi.d $a2, $a2, %pc_lo12(.LCPI3_0)
-; LA64D-NEXT: fld.s $fa1, $a2, 0
+; LA64D-NEXT: fld.s $fa1, $a2, %pc_lo12(.LCPI3_0)
; LA64D-NEXT: pcalau12i $a2, %pc_hi20(.LCPI3_1)
-; LA64D-NEXT: addi.d $a2, $a2, %pc_lo12(.LCPI3_1)
-; LA64D-NEXT: fld.s $fa2, $a2, 0
+; LA64D-NEXT: fld.s $fa2, $a2, %pc_lo12(.LCPI3_1)
; LA64D-NEXT: pcalau12i $a2, %pc_hi20(.LCPI3_2)
-; LA64D-NEXT: addi.d $a2, $a2, %pc_lo12(.LCPI3_2)
-; LA64D-NEXT: fld.s $fa3, $a2, 0
+; LA64D-NEXT: fld.s $fa3, $a2, %pc_lo12(.LCPI3_2)
; LA64D-NEXT: fld.s $fa4, $a0, 28
; LA64D-NEXT: fld.s $fa5, $a0, 24
; LA64D-NEXT: fld.s $fa6, $a0, 12
@@ -488,8 +460,7 @@ define void @test_d2(ptr %P, ptr %S) nounwind {
; LA32D-NEXT: addi.w $a0, $zero, 1
; LA32D-NEXT: movgr2fr.w $fa2, $a0
; LA32D-NEXT: pcalau12i $a0, %pc_hi20(.LCPI4_0)
-; LA32D-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI4_0)
-; LA32D-NEXT: fld.d $fa3, $a0, 0
+; LA32D-NEXT: fld.d $fa3, $a0, %pc_lo12(.LCPI4_0)
; LA32D-NEXT: ffint.s.w $fa2, $fa2
; LA32D-NEXT: fcvt.d.s $fa2, $fa2
; LA32D-NEXT: fadd.d $fa1, $fa1, $fa2
@@ -529,8 +500,7 @@ define void @test_d2(ptr %P, ptr %S) nounwind {
; LA64D-NEXT: fld.d $fa1, $a0, 0
; LA64D-NEXT: addi.d $a0, $zero, 1
; LA64D-NEXT: pcalau12i $a2, %pc_hi20(.LCPI4_0)
-; LA64D-NEXT: addi.d $a2, $a2, %pc_lo12(.LCPI4_0)
-; LA64D-NEXT: fld.d $fa2, $a2, 0
+; LA64D-NEXT: fld.d $fa2, $a2, %pc_lo12(.LCPI4_0)
; LA64D-NEXT: movgr2fr.d $fa3, $a0
; LA64D-NEXT: ffint.d.l $fa3, $fa3
; LA64D-NEXT: fadd.d $fa1, $fa1, $fa3
@@ -625,14 +595,11 @@ define void @test_d4(ptr %P, ptr %S) nounwind {
; LA32D-NEXT: ffint.s.w $fa4, $fa4
; LA32D-NEXT: fcvt.d.s $fa4, $fa4
; LA32D-NEXT: pcalau12i $a0, %pc_hi20(.LCPI5_0)
-; LA32D-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI5_0)
-; LA32D-NEXT: fld.d $fa5, $a0, 0
+; LA32D-NEXT: fld.d $fa5, $a0, %pc_lo12(.LCPI5_0)
; LA32D-NEXT: pcalau12i $a0, %pc_hi20(.LCPI5_1)
-; LA32D-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI5_1)
-; LA32D-NEXT: fld.d $fa6, $a0, 0
+; LA32D-NEXT: fld.d $fa6, $a0, %pc_lo12(.LCPI5_1)
; LA32D-NEXT: pcalau12i $a0, %pc_hi20(.LCPI5_2)
-; LA32D-NEXT: addi.w $a0, $a0, %pc_lo12(.LCPI5_2)
-; LA32D-NEXT: fld.d $fa7, $a0, 0
+; LA32D-NEXT: fld.d $fa7, $a0, %pc_lo12(.LCPI5_2)
; LA32D-NEXT: fadd.d $fa3, $fa3, $fa4
; LA32D-NEXT: fadd.d $fa2, $fa2, $fa5
; LA32D-NEXT: fadd.d $fa1, $fa1, $fa6
@@ -696,14 +663,11 @@ define void @test_d4(ptr %P, ptr %S) nounwind {
; LA64D-NEXT: movgr2fr.d $fa4, $a0
; LA64D-NEXT: ffint.d.l $fa4, $fa4
; LA64D-NEXT: pcalau12i $a0, %pc_hi20(.LCPI5_0)
-; LA64D-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI5_0)
-; LA64D-NEXT: fld.d $fa5, $a0, 0
+; LA64D-NEXT: fld.d $fa5, $a0, %pc_lo12(.LCPI5_0)
; LA64D-NEXT: pcalau12i $a0, %pc_hi20(.LCPI5_1)
-; LA64D-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI5_1)
-; LA64D-NEXT: fld.d $fa6, $a0, 0
+; LA64D-NEXT: fld.d $fa6, $a0, %pc_lo12(.LCPI5_1)
; LA64D-NEXT: pcalau12i $a0, %pc_hi20(.LCPI5_2)
-; LA64D-NEXT: addi.d $a0, $a0, %pc_lo12(.LCPI5_2)
-; LA64D-NEXT: fld.d $fa7, $a0, 0
+; LA64D-NEXT: fld.d $fa7, $a0, %pc_lo12(.LCPI5_2)
; LA64D-NEXT: fadd.d $fa3, $fa3, $fa4
; LA64D-NEXT: fadd.d $fa2, $fa2, $fa5
; LA64D-NEXT: fadd.d $fa1, $fa1, $fa6
@@ -852,14 +816,11 @@ define void @test_d8(ptr %P, ptr %S) nounwind {
; LA32D-NEXT: addi.w $a2, $zero, 1
; LA32D-NEXT: movgr2fr.w $fa0, $a2
; LA32D-NEXT: pcalau12i $a2, %pc_hi20(.LCPI6_0)
-; LA32D-NEXT: addi.w $a2, $a2, %pc_lo12(.LCPI6_0)
-; LA32D-NEXT: fld.d $fa1, $a2, 0
+; LA32D-NEXT: fld.d $fa1, $a2, %pc_lo12(.LCPI6_0)
; LA32D-NEXT: pcalau12i $a2, %pc_hi20(.LCPI6_1)
-; LA32D-NEXT: addi.w $a2, $a2, %pc_lo12(.LCPI6_1)
-; LA32D-NEXT: fld.d $fa2, $a2, 0
+; LA32D-NEXT: fld.d $fa2, $a2, %pc_lo12(.LCPI6_1)
; LA32D-NEXT: pcalau12i $a2, %pc_hi20(.LCPI6_2)
-; LA32D-NEXT: addi.w $a2, $a2, %pc_lo12(.LCPI6_2)
-; LA32D-NEXT: fld.d $fa3, $a2, 0
+; LA32D-NEXT: fld.d $fa3, $a2, %pc_lo12(.LCPI6_2)
; LA32D-NEXT: fld.d $fa4, $a0, 56
; LA32D-NEXT: fld.d $fa5, $a0, 48
; LA32D-NEXT: fld.d $fa6, $a0, 24
@@ -976,14 +937,11 @@ define void @test_d8(ptr %P, ptr %S) nounwind {
; LA64D-NEXT: addi.d $a2, $zero, 1
; LA64D-NEXT: movgr2fr.d $fa0, $a2
; LA64D-NEXT: pcalau12i $a2, %pc_hi20(.LCPI6_0)
-; LA64D-NEXT: addi.d $a2, $a2, %pc_lo12(.LCPI6_0)
-; LA64D-NEXT: fld.d $fa1, $a2, 0
+; LA64D-NEXT: fld.d $fa1, $a2, %pc_lo12(.LCPI6_0)
; LA64D-NEXT: pcalau12i $a2, %pc_hi20(.LCPI6_1)
-; LA64D-NEXT: addi.d $a2, $a2, %pc_lo12(.LCPI6_1)
-; LA64D-NEXT: fld.d $fa2, $a2, 0
+; LA64D-NEXT: fld.d $fa2, $a2, %pc_lo12(.LCPI6_1)
; LA64D-NEXT: pcalau12i $a2, %pc_hi20(.LCPI6_2)
-; LA64D-NEXT: addi.d $a2, $a2, %pc_lo12(.LCPI6_2)
-; LA64D-NEXT: fld.d $fa3, $a2, 0
+; LA64D-NEXT: fld.d $fa3, $a2, %pc_lo12(.LCPI6_2)
; LA64D-NEXT: fld.d $fa4, $a0, 56
; LA64D-NEXT: fld.d $fa5, $a0, 48
; LA64D-NEXT: fld.d $fa6, $a0, 24
diff --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/loongarch_generated_funcs.ll.generated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/loongarch_generated_funcs.ll.generated.expected
index 56b6c90a2f6f33..7a7115b393b1db 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/loongarch_generated_funcs.ll.generated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/loongarch_generated_funcs.ll.generated.expected
@@ -122,7 +122,6 @@ attributes #0 = { noredzone nounwind ssp uwtable "frame-pointer"="all" }
; CHECK-NEXT: .cfi_def_cfa 22, 0
; CHECK-NEXT: st.w $zero, $fp, -12
; CHECK-NEXT: pcalau12i $a0, %pc_hi20(x)
-; CHECK-NEXT: addi.w $a0, $a0, %pc_lo12(x)
; CHECK-NEXT: ori $a1, $zero, 1
; CHECK-NEXT: st.w $a1, $fp, -16
; CHECK-NEXT: ori $a2, $zero, 2
@@ -131,7 +130,7 @@ attributes #0 = { noredzone nounwind ssp uwtable "frame-pointer"="all" }
; CHECK-NEXT: st.w $a3, $fp, -24
; CHECK-NEXT: ori $a4, $zero, 4
; CHECK-NEXT: st.w $a4, $fp, -28
-; CHECK-NEXT: st.w $a1, $a0, 0
+; CHECK-NEXT: st.w $a1, $a0, %pc_lo12(x)
; CHECK-NEXT: #APP
; CHECK-NEXT: #NO_APP
; CHECK-NEXT: st.w $a1, $fp, -16
diff --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/loongarch_generated_funcs.ll.nogenerated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/loongarch_generated_funcs.ll.nogenerated.expected
index 2e063202fcf79e..d99eb3749826f0 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/loongarch_generated_funcs.ll.nogenerated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/loongarch_generated_funcs.ll.nogenerated.expected
@@ -99,7 +99,6 @@ define dso_local i32 @main() #0 {
; CHECK-NEXT: .cfi_def_cfa 22, 0
; CHECK-NEXT: st.w $zero, $fp, -12
; CHECK-NEXT: pcalau12i $a0, %pc_hi20(x)
-; CHECK-NEXT: addi.w $a0, $a0, %pc_lo12(x)
; CHECK-NEXT: ori $a1, $zero, 1
; CHECK-NEXT: st.w $a1, $fp, -16
; CHECK-NEXT: ori $a2, $zero, 2
@@ -108,7 +107,7 @@ define dso_local i32 @main() #0 {
; CHECK-NEXT: st.w $a3, $fp, -24
; CHECK-NEXT: ori $a4, $zero, 4
; CHECK-NEXT: st.w $a4, $fp, -28
-; CHECK-NEXT: st.w $a1, $a0, 0
+; CHECK-NEXT: st.w $a1, $a0, %pc_lo12(x)
; CHECK-NEXT: #APP
; CHECK-NEXT: #NO_APP
; CHECK-NEXT: st.w $a1, $fp, -16
diff --git a/llvm/utils/gn/secondary/llvm/lib/Target/LoongArch/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Target/LoongArch/BUILD.gn
index 248e47a9584cdf..09a5311c122fc5 100644
--- a/llvm/utils/gn/secondary/llvm/lib/Target/LoongArch/BUILD.gn
+++ b/llvm/utils/gn/secondary/llvm/lib/Target/LoongArch/BUILD.gn
@@ -42,6 +42,7 @@ static_library("LLVMLoongArchCodeGen") {
"LoongArchISelLowering.cpp",
"LoongArchInstrInfo.cpp",
"LoongArchMCInstLower.cpp",
+ "LoongArchMergeBaseOffset.cpp",
"LoongArchOptWInstrs.cpp",
"LoongArchRegisterInfo.cpp",
"LoongArchSubtarget.cpp",
More information about the llvm-commits
mailing list