ret double 255.0
}
+; Negative test. This is 1 * 2^256.
+; FIXME: This should not use fli.d
+define double @loadfpimm10() {
+; CHECK-LABEL: loadfpimm10:
+; CHECK: # %bb.0:
+; CHECK-NEXT: fli.d fa0, 2.0
+; CHECK-NEXT: ret
+ ret double 0x1000000000000000
+}
+
declare double @llvm.minimum.f64(double, double)
define double @fminm_d(double %a, double %b) nounwind {
; ZFHMIN-NEXT: ret
ret half 255.0
}
+
+; This is 1 * 2^-16
+; FIXME: this should use fli.h
+define half @loadfpimm10() {
+; CHECK-LABEL: loadfpimm10:
+; CHECK: # %bb.0:
+; CHECK-NEXT: li a0, 256
+; CHECK-NEXT: fmv.h.x fa0, a0
+; CHECK-NEXT: ret
+;
+; ZFHMIN-LABEL: loadfpimm10:
+; ZFHMIN: # %bb.0:
+; ZFHMIN-NEXT: li a0, 256
+; ZFHMIN-NEXT: fmv.h.x fa0, a0
+; ZFHMIN-NEXT: ret
+ ret half 0xH0100
+}
+
+; This is 1 * 2^-15
+; FIXME: This should use fli.h
+define half @loadfpimm11() {
+; CHECK-LABEL: loadfpimm11:
+; CHECK: # %bb.0:
+; CHECK-NEXT: li a0, 512
+; CHECK-NEXT: fmv.h.x fa0, a0
+; CHECK-NEXT: ret
+;
+; ZFHMIN-LABEL: loadfpimm11:
+; ZFHMIN: # %bb.0:
+; ZFHMIN-NEXT: li a0, 512
+; ZFHMIN-NEXT: fmv.h.x fa0, a0
+; ZFHMIN-NEXT: ret
+ ret half 0xH0200
+}