[llvm] [LoongArch] Load floating-point immediate using VLDI (PR #101923)

via llvm-commits llvm-commits at lists.llvm.org
Sun Aug 4 22:55:05 PDT 2024


https://github.com/heiher created https://github.com/llvm/llvm-project/pull/101923

This commit uses the VLDI instruction to load some common floating-point constants when the LSX feature is enabled.

>From 751841a7644b40d225a595e148f36e947a5f63a4 Mon Sep 17 00:00:00 2001
From: WANG Rui <wangrui at loongson.cn>
Date: Mon, 5 Aug 2024 11:48:28 +0800
Subject: [PATCH] [LoongArch] Load floating-point immediate using VLDI

This commit uses the VLDI instruction to load some common floating-point
constants when the LSX feature is enabled.
---
 .../LoongArch/LoongArchISelLowering.cpp       |   19 +-
 .../Target/LoongArch/LoongArchISelLowering.h  |    2 +
 .../Target/LoongArch/LoongArchLSXInstrInfo.td |   31 +
 llvm/test/CodeGen/LoongArch/float-imm-vldi.ll | 6146 ++++-------------
 4 files changed, 1333 insertions(+), 4865 deletions(-)

diff --git a/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp b/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
index bdbb7ab0f5139..44f3c1496344e 100644
--- a/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+++ b/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
@@ -5573,6 +5573,23 @@ SDValue LoongArchTargetLowering::LowerReturn(
   return DAG.getNode(LoongArchISD::RET, DL, MVT::Other, RetOps);
 }
 
+bool LoongArchTargetLowering::isFPImmVLDILegal(const APFloat &Imm,
+                                               EVT VT) const {
+  if (!Subtarget.hasExtLSX())
+    return false;
+
+  uint64_t val = Imm.bitcastToAPInt().getZExtValue();
+  if (VT == MVT::f32) {
+    uint64_t masked = val & 0x7e07ffff;
+    return (masked == 0x3e000000 || masked == 0x40000000);
+  } else if (VT == MVT::f64) {
+    uint64_t masked = val & 0x7fc0ffffffffffff;
+    return (masked == 0x3fc0000000000000 || masked == 0x4000000000000000);
+  }
+
+  return false;
+}
+
 bool LoongArchTargetLowering::isFPImmLegal(const APFloat &Imm, EVT VT,
                                            bool ForCodeSize) const {
   // TODO: Maybe need more checks here after vector extension is supported.
@@ -5580,7 +5597,7 @@ bool LoongArchTargetLowering::isFPImmLegal(const APFloat &Imm, EVT VT,
     return false;
   if (VT == MVT::f64 && !Subtarget.hasBasicD())
     return false;
-  return (Imm.isZero() || Imm.isExactlyValue(+1.0));
+  return (Imm.isZero() || Imm.isExactlyValue(1.0) || isFPImmVLDILegal(Imm, VT));
 }
 
 bool LoongArchTargetLowering::isCheapToSpeculateCttz(Type *) const {
diff --git a/llvm/lib/Target/LoongArch/LoongArchISelLowering.h b/llvm/lib/Target/LoongArch/LoongArchISelLowering.h
index d834a5d8587fd..9723789e919b1 100644
--- a/llvm/lib/Target/LoongArch/LoongArchISelLowering.h
+++ b/llvm/lib/Target/LoongArch/LoongArchISelLowering.h
@@ -260,6 +260,8 @@ class LoongArchTargetLowering : public TargetLowering {
   bool shouldAlignPointerArgs(CallInst *CI, unsigned &MinSize,
                               Align &PrefAlign) const override;
 
+  bool isFPImmVLDILegal(const APFloat &Imm, EVT VT) const;
+
 private:
   /// Target-specific function used to lower LoongArch calling conventions.
   typedef bool LoongArchCCAssignFn(const DataLayout &DL, LoongArchABI::ABI ABI,
diff --git a/llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td b/llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
index 0580683c3ce30..cac47e35afe25 100644
--- a/llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
+++ b/llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
@@ -203,6 +203,29 @@ def to_valid_timm : SDNodeXForm<timm, [{
   return CurDAG->getTargetConstant(CN->getSExtValue(), SDLoc(N), Subtarget->getGRLenVT());
 }]>;
 
+// FP immediate of VLDI patterns.
+def f32imm_vldi : PatLeaf<(fpimm), [{
+  const auto &TLI =
+      *static_cast<const LoongArchTargetLowering*>(getTargetLowering());
+  return TLI.isFPImmVLDILegal(N->getValueAPF(), MVT::f32);
+}]>;
+def f64imm_vldi : PatLeaf<(fpimm), [{
+  const auto &TLI =
+      *static_cast<const LoongArchTargetLowering*>(getTargetLowering());
+  return TLI.isFPImmVLDILegal(N->getValueAPF(), MVT::f64);
+}]>;
+
+def to_f32imm_vldi : SDNodeXForm<fpimm, [{
+  uint64_t x = N->getValueAPF().bitcastToAPInt().getZExtValue();
+  x = (0b11011 << 8) | (((x >> 24) & 0xc0) ^ 0x40) | ((x >> 19) & 0x3f);
+  return CurDAG->getTargetConstant(SignExtend32<13>(x), SDLoc(N), MVT::i32);
+}]>;
+def to_f64imm_vldi : SDNodeXForm<fpimm, [{
+  uint64_t x = N->getValueAPF().bitcastToAPInt().getZExtValue();
+  x = (0b11100 << 8) | (((x >> 56) & 0xc0) ^ 0x40) | ((x >> 48) & 0x3f);
+  return CurDAG->getTargetConstant(SignExtend32<13>(x), SDLoc(N), MVT::i32);
+}]>;
+
 //===----------------------------------------------------------------------===//
 // Instruction class templates
 //===----------------------------------------------------------------------===//
@@ -663,7 +686,9 @@ def VMSKGEZ_B : LSX2R_VV<0x729c5000>;
 
 def VMSKNZ_B : LSX2R_VV<0x729c6000>;
 
+let isReMaterializable = 1, isAsCheapAsAMove = 1 in {
 def VLDI : LSX1RI13_VI<0x73e00000>;
+}
 
 def VAND_V : LSX3R_VVV<0x71260000>;
 def VOR_V : LSX3R_VVV<0x71268000>;
@@ -1910,6 +1935,12 @@ def : Pat<(v2i64 (fp_to_sint v2f64:$vj)), (VFTINTRZ_L_D v2f64:$vj)>;
 def : Pat<(v4i32 (fp_to_uint v4f32:$vj)), (VFTINTRZ_WU_S v4f32:$vj)>;
 def : Pat<(v2i64 (fp_to_uint v2f64:$vj)), (VFTINTRZ_LU_D v2f64:$vj)>;
 
+// Vector loads floating-point constants
+def : Pat<(f32 f32imm_vldi:$in),
+          (f32 (EXTRACT_SUBREG (VLDI (to_f32imm_vldi f32imm_vldi:$in)), sub_32))>;
+def : Pat<(f64 f64imm_vldi:$in),
+          (f64 (EXTRACT_SUBREG (VLDI (to_f64imm_vldi f64imm_vldi:$in)), sub_64))>;
+
 } // Predicates = [HasExtLSX]
 
 /// Intrinsic pattern
diff --git a/llvm/test/CodeGen/LoongArch/float-imm-vldi.ll b/llvm/test/CodeGen/LoongArch/float-imm-vldi.ll
index 0c6856bafd23d..551ab6ea44c66 100644
--- a/llvm/test/CodeGen/LoongArch/float-imm-vldi.ll
+++ b/llvm/test/CodeGen/LoongArch/float-imm-vldi.ll
@@ -1,6145 +1,2563 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
-; RUN: llc --mtriple=loongarch32 --mattr=+lsx < %s | FileCheck %s --check-prefix=LA32
-; RUN: llc --mtriple=loongarch64 --mattr=+lsx < %s | FileCheck %s --check-prefix=LA64
+; RUN: llc --mtriple=loongarch32 --mattr=+lsx < %s | FileCheck %s
+; RUN: llc --mtriple=loongarch64 --mattr=+lsx < %s | FileCheck %s
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test1:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1280
+; CHECK-NEXT:    vldi $vr1, -1024
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 2.0000000000, double 2.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test2:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1279
+; CHECK-NEXT:    vldi $vr1, -1023
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 2.1250000000, double 2.1250000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test3:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1278
+; CHECK-NEXT:    vldi $vr1, -1022
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 2.2500000000, double 2.2500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test4:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1277
+; CHECK-NEXT:    vldi $vr1, -1021
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 2.3750000000, double 2.3750000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test5:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1276
+; CHECK-NEXT:    vldi $vr1, -1020
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 2.5000000000, double 2.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test6:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1275
+; CHECK-NEXT:    vldi $vr1, -1019
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 2.6250000000, double 2.6250000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test7:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1274
+; CHECK-NEXT:    vldi $vr1, -1018
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 2.7500000000, double 2.7500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test8:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1273
+; CHECK-NEXT:    vldi $vr1, -1017
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 2.8750000000, double 2.8750000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test9:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1272
+; CHECK-NEXT:    vldi $vr1, -1016
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 3.0000000000, double 3.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test10:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1271
+; CHECK-NEXT:    vldi $vr1, -1015
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 3.1250000000, double 3.1250000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test11:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1270
+; CHECK-NEXT:    vldi $vr1, -1014
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 3.2500000000, double 3.2500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test12:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1269
+; CHECK-NEXT:    vldi $vr1, -1013
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 3.3750000000, double 3.3750000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test13:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1268
+; CHECK-NEXT:    vldi $vr1, -1012
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 3.5000000000, double 3.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test14:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1267
+; CHECK-NEXT:    vldi $vr1, -1011
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 3.6250000000, double 3.6250000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test15:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1266
+; CHECK-NEXT:    vldi $vr1, -1010
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 3.7500000000, double 3.7500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test16:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1265
+; CHECK-NEXT:    vldi $vr1, -1009
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 3.8750000000, double 3.8750000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test17:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1264
+; CHECK-NEXT:    vldi $vr1, -1008
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 4.0000000000, double 4.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test18:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1263
+; CHECK-NEXT:    vldi $vr1, -1007
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 4.2500000000, double 4.2500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test19:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1262
+; CHECK-NEXT:    vldi $vr1, -1006
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 4.5000000000, double 4.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test20:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1261
+; CHECK-NEXT:    vldi $vr1, -1005
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 4.7500000000, double 4.7500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test21:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1260
+; CHECK-NEXT:    vldi $vr1, -1004
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 5.0000000000, double 5.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test22:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1259
+; CHECK-NEXT:    vldi $vr1, -1003
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 5.2500000000, double 5.2500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test23:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1258
+; CHECK-NEXT:    vldi $vr1, -1002
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 5.5000000000, double 5.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test24:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1257
+; CHECK-NEXT:    vldi $vr1, -1001
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 5.7500000000, double 5.7500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test25:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1256
+; CHECK-NEXT:    vldi $vr1, -1000
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 6.0000000000, double 6.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test26:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1255
+; CHECK-NEXT:    vldi $vr1, -999
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 6.2500000000, double 6.2500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test27:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1254
+; CHECK-NEXT:    vldi $vr1, -998
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 6.5000000000, double 6.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test28:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1253
+; CHECK-NEXT:    vldi $vr1, -997
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 6.7500000000, double 6.7500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test29:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1252
+; CHECK-NEXT:    vldi $vr1, -996
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 7.0000000000, double 7.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test30:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1251
+; CHECK-NEXT:    vldi $vr1, -995
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 7.2500000000, double 7.2500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test31:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1250
+; CHECK-NEXT:    vldi $vr1, -994
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 7.5000000000, double 7.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test32:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1249
+; CHECK-NEXT:    vldi $vr1, -993
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 7.7500000000, double 7.7500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test33:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1248
+; CHECK-NEXT:    vldi $vr1, -992
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 8.0000000000, double 8.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test34:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1247
+; CHECK-NEXT:    vldi $vr1, -991
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 8.5000000000, double 8.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test35:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1246
+; CHECK-NEXT:    vldi $vr1, -990
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 9.0000000000, double 9.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test36:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1245
+; CHECK-NEXT:    vldi $vr1, -989
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 9.5000000000, double 9.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test37:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1244
+; CHECK-NEXT:    vldi $vr1, -988
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 10.0000000000, double 10.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test38:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1243
+; CHECK-NEXT:    vldi $vr1, -987
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 10.5000000000, double 10.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test39:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1242
+; CHECK-NEXT:    vldi $vr1, -986
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 11.0000000000, double 11.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test40:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1241
+; CHECK-NEXT:    vldi $vr1, -985
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 11.5000000000, double 11.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test41:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1240
+; CHECK-NEXT:    vldi $vr1, -984
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 12.0000000000, double 12.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test42:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1239
+; CHECK-NEXT:    vldi $vr1, -983
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 12.5000000000, double 12.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test43:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1238
+; CHECK-NEXT:    vldi $vr1, -982
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 13.0000000000, double 13.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test44:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1237
+; CHECK-NEXT:    vldi $vr1, -981
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 13.5000000000, double 13.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test45:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1236
+; CHECK-NEXT:    vldi $vr1, -980
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 14.0000000000, double 14.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test46:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1235
+; CHECK-NEXT:    vldi $vr1, -979
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 14.5000000000, double 14.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test47:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1234
+; CHECK-NEXT:    vldi $vr1, -978
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 15.0000000000, double 15.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test48:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1233
+; CHECK-NEXT:    vldi $vr1, -977
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 15.5000000000, double 15.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test49:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1232
+; CHECK-NEXT:    vldi $vr1, -976
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 16.0000000000, double 16.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test50:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1231
+; CHECK-NEXT:    vldi $vr1, -975
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 17.0000000000, double 17.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test51:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1230
+; CHECK-NEXT:    vldi $vr1, -974
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 18.0000000000, double 18.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test52:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1229
+; CHECK-NEXT:    vldi $vr1, -973
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 19.0000000000, double 19.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test53:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1228
+; CHECK-NEXT:    vldi $vr1, -972
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 20.0000000000, double 20.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test54:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1227
+; CHECK-NEXT:    vldi $vr1, -971
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 21.0000000000, double 21.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test55:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1226
+; CHECK-NEXT:    vldi $vr1, -970
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 22.0000000000, double 22.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test56:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1225
+; CHECK-NEXT:    vldi $vr1, -969
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 23.0000000000, double 23.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test57:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1224
+; CHECK-NEXT:    vldi $vr1, -968
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 24.0000000000, double 24.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test58:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1223
+; CHECK-NEXT:    vldi $vr1, -967
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 25.0000000000, double 25.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test59:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1222
+; CHECK-NEXT:    vldi $vr1, -966
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 26.0000000000, double 26.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test60:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1221
+; CHECK-NEXT:    vldi $vr1, -965
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 27.0000000000, double 27.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test61:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1220
+; CHECK-NEXT:    vldi $vr1, -964
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 28.0000000000, double 28.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test62:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1219
+; CHECK-NEXT:    vldi $vr1, -963
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 29.0000000000, double 29.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test63:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1218
+; CHECK-NEXT:    vldi $vr1, -962
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 30.0000000000, double 30.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test64:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1217
+; CHECK-NEXT:    vldi $vr1, -961
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 31.0000000000, double 31.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test65:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1216
+; CHECK-NEXT:    vldi $vr1, -960
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.1250000000, double 0.1250000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test66:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1215
+; CHECK-NEXT:    vldi $vr1, -959
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.1328125000, double 0.1328125000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test67:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1214
+; CHECK-NEXT:    vldi $vr1, -958
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.1406250000, double 0.1406250000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test68:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1213
+; CHECK-NEXT:    vldi $vr1, -957
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.1484375000, double 0.1484375000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test69:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1212
+; CHECK-NEXT:    vldi $vr1, -956
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.1562500000, double 0.1562500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test70:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1211
+; CHECK-NEXT:    vldi $vr1, -955
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.1640625000, double 0.1640625000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test71:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1210
+; CHECK-NEXT:    vldi $vr1, -954
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.1718750000, double 0.1718750000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test72:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1209
+; CHECK-NEXT:    vldi $vr1, -953
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.1796875000, double 0.1796875000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test73:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1208
+; CHECK-NEXT:    vldi $vr1, -952
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.1875000000, double 0.1875000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test74:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1207
+; CHECK-NEXT:    vldi $vr1, -951
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.1953125000, double 0.1953125000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test75:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1206
+; CHECK-NEXT:    vldi $vr1, -950
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.2031250000, double 0.2031250000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test76:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1205
+; CHECK-NEXT:    vldi $vr1, -949
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.2109375000, double 0.2109375000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test77:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1204
+; CHECK-NEXT:    vldi $vr1, -948
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.2187500000, double 0.2187500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test78:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1203
+; CHECK-NEXT:    vldi $vr1, -947
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.2265625000, double 0.2265625000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test79:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1202
+; CHECK-NEXT:    vldi $vr1, -946
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.2343750000, double 0.2343750000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test80:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1201
+; CHECK-NEXT:    vldi $vr1, -945
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.2421875000, double 0.2421875000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test81:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1200
+; CHECK-NEXT:    vldi $vr1, -944
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.2500000000, double 0.2500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test82:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1199
+; CHECK-NEXT:    vldi $vr1, -943
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.2656250000, double 0.2656250000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test83:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1198
+; CHECK-NEXT:    vldi $vr1, -942
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.2812500000, double 0.2812500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test84:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1197
+; CHECK-NEXT:    vldi $vr1, -941
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.2968750000, double 0.2968750000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test85:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1196
+; CHECK-NEXT:    vldi $vr1, -940
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.3125000000, double 0.3125000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test86:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1195
+; CHECK-NEXT:    vldi $vr1, -939
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.3281250000, double 0.3281250000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test87:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1194
+; CHECK-NEXT:    vldi $vr1, -938
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.3437500000, double 0.3437500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test88:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1193
+; CHECK-NEXT:    vldi $vr1, -937
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.3593750000, double 0.3593750000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test89:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1192
+; CHECK-NEXT:    vldi $vr1, -936
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.3750000000, double 0.3750000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test90:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1191
+; CHECK-NEXT:    vldi $vr1, -935
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.3906250000, double 0.3906250000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test91:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1190
+; CHECK-NEXT:    vldi $vr1, -934
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.4062500000, double 0.4062500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test92:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1189
+; CHECK-NEXT:    vldi $vr1, -933
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.4218750000, double 0.4218750000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test93:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1188
+; CHECK-NEXT:    vldi $vr1, -932
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.4375000000, double 0.4375000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test94:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1187
+; CHECK-NEXT:    vldi $vr1, -931
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.4531250000, double 0.4531250000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test95:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1186
+; CHECK-NEXT:    vldi $vr1, -930
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.4687500000, double 0.4687500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test96:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1185
+; CHECK-NEXT:    vldi $vr1, -929
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.4843750000, double 0.4843750000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test97:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1184
+; CHECK-NEXT:    vldi $vr1, -928
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.5000000000, double 0.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test98:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1183
+; CHECK-NEXT:    vldi $vr1, -927
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.5312500000, double 0.5312500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test99:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1182
+; CHECK-NEXT:    vldi $vr1, -926
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.5625000000, double 0.5625000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test100:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1181
+; CHECK-NEXT:    vldi $vr1, -925
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.5937500000, double 0.5937500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test101:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1180
+; CHECK-NEXT:    vldi $vr1, -924
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.6250000000, double 0.6250000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test102:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1179
+; CHECK-NEXT:    vldi $vr1, -923
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.6562500000, double 0.6562500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test103:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1178
+; CHECK-NEXT:    vldi $vr1, -922
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.6875000000, double 0.6875000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test104:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1177
+; CHECK-NEXT:    vldi $vr1, -921
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.7187500000, double 0.7187500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test105:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1176
+; CHECK-NEXT:    vldi $vr1, -920
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.7500000000, double 0.7500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test106:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1175
+; CHECK-NEXT:    vldi $vr1, -919
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.7812500000, double 0.7812500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test107:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1174
+; CHECK-NEXT:    vldi $vr1, -918
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.8125000000, double 0.8125000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test108:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1173
+; CHECK-NEXT:    vldi $vr1, -917
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.8437500000, double 0.8437500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test109:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1172
+; CHECK-NEXT:    vldi $vr1, -916
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.8750000000, double 0.8750000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test110:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1171
+; CHECK-NEXT:    vldi $vr1, -915
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.9062500000, double 0.9062500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test111:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1170
+; CHECK-NEXT:    vldi $vr1, -914
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.9375000000, double 0.9375000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test112:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1169
+; CHECK-NEXT:    vldi $vr1, -913
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 0.9687500000, double 0.9687500000 }
 }
 
 define dso_local { float, double } @test113() {
-; LA32-LABEL: test113:
-; LA32:       # %bb.0: # %entry
-; LA32-NEXT:    addi.w $a0, $zero, 1
-; LA32-NEXT:    movgr2fr.w $fa0, $a0
-; LA32-NEXT:    ffint.s.w $fa0, $fa0
-; LA32-NEXT:    fcvt.d.s $fa1, $fa0
-; LA32-NEXT:    ret
-;
-; LA64-LABEL: test113:
-; LA64:       # %bb.0: # %entry
-; LA64-NEXT:    addi.w $a0, $zero, 1
-; LA64-NEXT:    movgr2fr.w $fa0, $a0
-; LA64-NEXT:    ffint.s.w $fa0, $fa0
-; LA64-NEXT:    addi.d $a0, $zero, 1
-; LA64-NEXT:    movgr2fr.d $fa1, $a0
-; LA64-NEXT:    ffint.d.l $fa1, $fa1
-; LA64-NEXT:    ret
+; CHECK-LABEL: test113:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1168
+; CHECK-NEXT:    vldi $vr1, -912
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 1.0000000000, double 1.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test114:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1167
+; CHECK-NEXT:    vldi $vr1, -911
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 1.0625000000, double 1.0625000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test115:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1166
+; CHECK-NEXT:    vldi $vr1, -910
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 1.1250000000, double 1.1250000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test116:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1165
+; CHECK-NEXT:    vldi $vr1, -909
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 1.1875000000, double 1.1875000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test117:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1164
+; CHECK-NEXT:    vldi $vr1, -908
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 1.2500000000, double 1.2500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test118:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1163
+; CHECK-NEXT:    vldi $vr1, -907
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 1.3125000000, double 1.3125000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test119:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1162
+; CHECK-NEXT:    vldi $vr1, -906
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 1.3750000000, double 1.3750000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test120:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1161
+; CHECK-NEXT:    vldi $vr1, -905
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 1.4375000000, double 1.4375000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test121:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1160
+; CHECK-NEXT:    vldi $vr1, -904
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 1.5000000000, double 1.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test122:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1159
+; CHECK-NEXT:    vldi $vr1, -903
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 1.5625000000, double 1.5625000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test123:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1158
+; CHECK-NEXT:    vldi $vr1, -902
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 1.6250000000, double 1.6250000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test124:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1157
+; CHECK-NEXT:    vldi $vr1, -901
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 1.6875000000, double 1.6875000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test125:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1156
+; CHECK-NEXT:    vldi $vr1, -900
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 1.7500000000, double 1.7500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test126:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1155
+; CHECK-NEXT:    vldi $vr1, -899
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 1.8125000000, double 1.8125000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test127:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1154
+; CHECK-NEXT:    vldi $vr1, -898
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 1.8750000000, double 1.8750000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test128:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1153
+; CHECK-NEXT:    vldi $vr1, -897
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float 1.9375000000, double 1.9375000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test129:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1152
+; CHECK-NEXT:    vldi $vr1, -896
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -2.0000000000, double -2.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test130:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1151
+; CHECK-NEXT:    vldi $vr1, -895
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -2.1250000000, double -2.1250000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test131:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1150
+; CHECK-NEXT:    vldi $vr1, -894
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -2.2500000000, double -2.2500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test132:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1149
+; CHECK-NEXT:    vldi $vr1, -893
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -2.3750000000, double -2.3750000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test133:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1148
+; CHECK-NEXT:    vldi $vr1, -892
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -2.5000000000, double -2.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test134:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1147
+; CHECK-NEXT:    vldi $vr1, -891
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -2.6250000000, double -2.6250000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test135:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1146
+; CHECK-NEXT:    vldi $vr1, -890
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -2.7500000000, double -2.7500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test136:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1145
+; CHECK-NEXT:    vldi $vr1, -889
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -2.8750000000, double -2.8750000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test137:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1144
+; CHECK-NEXT:    vldi $vr1, -888
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -3.0000000000, double -3.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test138:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1143
+; CHECK-NEXT:    vldi $vr1, -887
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -3.1250000000, double -3.1250000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test139:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1142
+; CHECK-NEXT:    vldi $vr1, -886
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -3.2500000000, double -3.2500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test140:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1141
+; CHECK-NEXT:    vldi $vr1, -885
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -3.3750000000, double -3.3750000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test141:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1140
+; CHECK-NEXT:    vldi $vr1, -884
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -3.5000000000, double -3.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test142:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1139
+; CHECK-NEXT:    vldi $vr1, -883
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -3.6250000000, double -3.6250000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test143:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1138
+; CHECK-NEXT:    vldi $vr1, -882
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -3.7500000000, double -3.7500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test144:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1137
+; CHECK-NEXT:    vldi $vr1, -881
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -3.8750000000, double -3.8750000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test145:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1136
+; CHECK-NEXT:    vldi $vr1, -880
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -4.0000000000, double -4.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test146:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1135
+; CHECK-NEXT:    vldi $vr1, -879
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -4.2500000000, double -4.2500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test147:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1134
+; CHECK-NEXT:    vldi $vr1, -878
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -4.5000000000, double -4.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test148:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1133
+; CHECK-NEXT:    vldi $vr1, -877
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -4.7500000000, double -4.7500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test149:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1132
+; CHECK-NEXT:    vldi $vr1, -876
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -5.0000000000, double -5.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test150:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1131
+; CHECK-NEXT:    vldi $vr1, -875
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -5.2500000000, double -5.2500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test151:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1130
+; CHECK-NEXT:    vldi $vr1, -874
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -5.5000000000, double -5.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test152:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1129
+; CHECK-NEXT:    vldi $vr1, -873
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -5.7500000000, double -5.7500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test153:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1128
+; CHECK-NEXT:    vldi $vr1, -872
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -6.0000000000, double -6.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test154:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1127
+; CHECK-NEXT:    vldi $vr1, -871
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -6.2500000000, double -6.2500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test155:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1126
+; CHECK-NEXT:    vldi $vr1, -870
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -6.5000000000, double -6.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test156:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1125
+; CHECK-NEXT:    vldi $vr1, -869
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -6.7500000000, double -6.7500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test157:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1124
+; CHECK-NEXT:    vldi $vr1, -868
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -7.0000000000, double -7.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test158:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1123
+; CHECK-NEXT:    vldi $vr1, -867
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -7.2500000000, double -7.2500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test159:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1122
+; CHECK-NEXT:    vldi $vr1, -866
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -7.5000000000, double -7.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test160:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1121
+; CHECK-NEXT:    vldi $vr1, -865
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -7.7500000000, double -7.7500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test161:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1120
+; CHECK-NEXT:    vldi $vr1, -864
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -8.0000000000, double -8.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test162:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1119
+; CHECK-NEXT:    vldi $vr1, -863
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -8.5000000000, double -8.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test163:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1118
+; CHECK-NEXT:    vldi $vr1, -862
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -9.0000000000, double -9.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test164:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1117
+; CHECK-NEXT:    vldi $vr1, -861
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -9.5000000000, double -9.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test165:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1116
+; CHECK-NEXT:    vldi $vr1, -860
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -10.0000000000, double -10.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test166:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1115
+; CHECK-NEXT:    vldi $vr1, -859
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -10.5000000000, double -10.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test167:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1114
+; CHECK-NEXT:    vldi $vr1, -858
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -11.0000000000, double -11.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test168:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1113
+; CHECK-NEXT:    vldi $vr1, -857
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -11.5000000000, double -11.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test169:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1112
+; CHECK-NEXT:    vldi $vr1, -856
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -12.0000000000, double -12.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test170:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1111
+; CHECK-NEXT:    vldi $vr1, -855
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -12.5000000000, double -12.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test171:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1110
+; CHECK-NEXT:    vldi $vr1, -854
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -13.0000000000, double -13.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test172:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1109
+; CHECK-NEXT:    vldi $vr1, -853
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -13.5000000000, double -13.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test173:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1108
+; CHECK-NEXT:    vldi $vr1, -852
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -14.0000000000, double -14.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test174:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1107
+; CHECK-NEXT:    vldi $vr1, -851
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -14.5000000000, double -14.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test175:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1106
+; CHECK-NEXT:    vldi $vr1, -850
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -15.0000000000, double -15.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test176:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1105
+; CHECK-NEXT:    vldi $vr1, -849
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -15.5000000000, double -15.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test177:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1104
+; CHECK-NEXT:    vldi $vr1, -848
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -16.0000000000, double -16.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test178:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1103
+; CHECK-NEXT:    vldi $vr1, -847
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -17.0000000000, double -17.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test179:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1102
+; CHECK-NEXT:    vldi $vr1, -846
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -18.0000000000, double -18.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test180:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1101
+; CHECK-NEXT:    vldi $vr1, -845
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -19.0000000000, double -19.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test181:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1100
+; CHECK-NEXT:    vldi $vr1, -844
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -20.0000000000, double -20.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test182:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1099
+; CHECK-NEXT:    vldi $vr1, -843
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -21.0000000000, double -21.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test183:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1098
+; CHECK-NEXT:    vldi $vr1, -842
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -22.0000000000, double -22.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test184:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1097
+; CHECK-NEXT:    vldi $vr1, -841
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -23.0000000000, double -23.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test185:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1096
+; CHECK-NEXT:    vldi $vr1, -840
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -24.0000000000, double -24.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test186:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1095
+; CHECK-NEXT:    vldi $vr1, -839
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -25.0000000000, double -25.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test187:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1094
+; CHECK-NEXT:    vldi $vr1, -838
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -26.0000000000, double -26.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test188:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1093
+; CHECK-NEXT:    vldi $vr1, -837
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -27.0000000000, double -27.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test189:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1092
+; CHECK-NEXT:    vldi $vr1, -836
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -28.0000000000, double -28.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test190:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1091
+; CHECK-NEXT:    vldi $vr1, -835
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -29.0000000000, double -29.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test191:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1090
+; CHECK-NEXT:    vldi $vr1, -834
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -30.0000000000, double -30.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test192:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1089
+; CHECK-NEXT:    vldi $vr1, -833
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -31.0000000000, double -31.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test193:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1088
+; CHECK-NEXT:    vldi $vr1, -832
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.1250000000, double -0.1250000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test194:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1087
+; CHECK-NEXT:    vldi $vr1, -831
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.1328125000, double -0.1328125000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test195:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1086
+; CHECK-NEXT:    vldi $vr1, -830
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.1406250000, double -0.1406250000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test196:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1085
+; CHECK-NEXT:    vldi $vr1, -829
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.1484375000, double -0.1484375000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test197:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1084
+; CHECK-NEXT:    vldi $vr1, -828
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.1562500000, double -0.1562500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test198:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1083
+; CHECK-NEXT:    vldi $vr1, -827
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.1640625000, double -0.1640625000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test199:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1082
+; CHECK-NEXT:    vldi $vr1, -826
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.1718750000, double -0.1718750000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test200:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1081
+; CHECK-NEXT:    vldi $vr1, -825
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.1796875000, double -0.1796875000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test201:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1080
+; CHECK-NEXT:    vldi $vr1, -824
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.1875000000, double -0.1875000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test202:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1079
+; CHECK-NEXT:    vldi $vr1, -823
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.1953125000, double -0.1953125000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test203:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1078
+; CHECK-NEXT:    vldi $vr1, -822
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.2031250000, double -0.2031250000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test204:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1077
+; CHECK-NEXT:    vldi $vr1, -821
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.2109375000, double -0.2109375000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test205:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1076
+; CHECK-NEXT:    vldi $vr1, -820
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.2187500000, double -0.2187500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test206:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1075
+; CHECK-NEXT:    vldi $vr1, -819
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.2265625000, double -0.2265625000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test207:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1074
+; CHECK-NEXT:    vldi $vr1, -818
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.2343750000, double -0.2343750000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test208:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1073
+; CHECK-NEXT:    vldi $vr1, -817
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.2421875000, double -0.2421875000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test209:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1072
+; CHECK-NEXT:    vldi $vr1, -816
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.2500000000, double -0.2500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test210:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1071
+; CHECK-NEXT:    vldi $vr1, -815
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.2656250000, double -0.2656250000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test211:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1070
+; CHECK-NEXT:    vldi $vr1, -814
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.2812500000, double -0.2812500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test212:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1069
+; CHECK-NEXT:    vldi $vr1, -813
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.2968750000, double -0.2968750000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test213:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1068
+; CHECK-NEXT:    vldi $vr1, -812
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.3125000000, double -0.3125000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test214:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1067
+; CHECK-NEXT:    vldi $vr1, -811
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.3281250000, double -0.3281250000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test215:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1066
+; CHECK-NEXT:    vldi $vr1, -810
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.3437500000, double -0.3437500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test216:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1065
+; CHECK-NEXT:    vldi $vr1, -809
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.3593750000, double -0.3593750000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test217:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1064
+; CHECK-NEXT:    vldi $vr1, -808
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.3750000000, double -0.3750000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test218:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1063
+; CHECK-NEXT:    vldi $vr1, -807
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.3906250000, double -0.3906250000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test219:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1062
+; CHECK-NEXT:    vldi $vr1, -806
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.4062500000, double -0.4062500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test220:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1061
+; CHECK-NEXT:    vldi $vr1, -805
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.4218750000, double -0.4218750000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test221:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1060
+; CHECK-NEXT:    vldi $vr1, -804
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.4375000000, double -0.4375000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test222:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1059
+; CHECK-NEXT:    vldi $vr1, -803
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.4531250000, double -0.4531250000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test223:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1058
+; CHECK-NEXT:    vldi $vr1, -802
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.4687500000, double -0.4687500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test224:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1057
+; CHECK-NEXT:    vldi $vr1, -801
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.4843750000, double -0.4843750000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test225:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1056
+; CHECK-NEXT:    vldi $vr1, -800
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.5000000000, double -0.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test226:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1055
+; CHECK-NEXT:    vldi $vr1, -799
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.5312500000, double -0.5312500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test227:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1054
+; CHECK-NEXT:    vldi $vr1, -798
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.5625000000, double -0.5625000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test228:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1053
+; CHECK-NEXT:    vldi $vr1, -797
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.5937500000, double -0.5937500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test229:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1052
+; CHECK-NEXT:    vldi $vr1, -796
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.6250000000, double -0.6250000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test230:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1051
+; CHECK-NEXT:    vldi $vr1, -795
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.6562500000, double -0.6562500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test231:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1050
+; CHECK-NEXT:    vldi $vr1, -794
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.6875000000, double -0.6875000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test232:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1049
+; CHECK-NEXT:    vldi $vr1, -793
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.7187500000, double -0.7187500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test233:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1048
+; CHECK-NEXT:    vldi $vr1, -792
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.7500000000, double -0.7500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test234:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1047
+; CHECK-NEXT:    vldi $vr1, -791
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.7812500000, double -0.7812500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test235:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1046
+; CHECK-NEXT:    vldi $vr1, -790
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.8125000000, double -0.8125000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test236:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1045
+; CHECK-NEXT:    vldi $vr1, -789
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.8437500000, double -0.8437500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test237:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1044
+; CHECK-NEXT:    vldi $vr1, -788
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.8750000000, double -0.8750000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test238:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1043
+; CHECK-NEXT:    vldi $vr1, -787
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.9062500000, double -0.9062500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test239:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1042
+; CHECK-NEXT:    vldi $vr1, -786
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.9375000000, double -0.9375000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test240:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1041
+; CHECK-NEXT:    vldi $vr1, -785
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -0.9687500000, double -0.9687500000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test241:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1040
+; CHECK-NEXT:    vldi $vr1, -784
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -1.0000000000, double -1.0000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test242:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1039
+; CHECK-NEXT:    vldi $vr1, -783
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -1.0625000000, double -1.0625000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test243:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1038
+; CHECK-NEXT:    vldi $vr1, -782
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -1.1250000000, double -1.1250000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test244:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1037
+; CHECK-NEXT:    vldi $vr1, -781
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -1.1875000000, double -1.1875000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test245:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1036
+; CHECK-NEXT:    vldi $vr1, -780
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -1.2500000000, double -1.2500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test246:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1035
+; CHECK-NEXT:    vldi $vr1, -779
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -1.3125000000, double -1.3125000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test247:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1034
+; CHECK-NEXT:    vldi $vr1, -778
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -1.3750000000, double -1.3750000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test248:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1033
+; CHECK-NEXT:    vldi $vr1, -777
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -1.4375000000, double -1.4375000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test249:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1032
+; CHECK-NEXT:    vldi $vr1, -776
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -1.5000000000, double -1.5000000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test250:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1031
+; CHECK-NEXT:    vldi $vr1, -775
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -1.5625000000, double -1.5625000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test251:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1030
+; CHECK-NEXT:    vldi $vr1, -774
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -1.6250000000, double -1.6250000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test252:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1029
+; CHECK-NEXT:    vldi $vr1, -773
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -1.6875000000, double -1.6875000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test253:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1028
+; CHECK-NEXT:    vldi $vr1, -772
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -1.7500000000, double -1.7500000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test254:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1027
+; CHECK-NEXT:    vldi $vr1, -771
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -1.8125000000, double -1.8125000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test255:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1026
+; CHECK-NEXT:    vldi $vr1, -770
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -1.8750000000, double -1.8750000000 }
 }
 
 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:    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:    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:    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:    ret
+; CHECK-LABEL: test256:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    vldi $vr0, -1025
+; CHECK-NEXT:    vldi $vr1, -769
+; CHECK-NEXT:    ret
 entry:
   ret { float, double } { float -1.9375000000, double -1.9375000000 }
 }



More information about the llvm-commits mailing list