Index: tests_lit/llvm2ice_tests/fp.convert.ll |
diff --git a/tests_lit/llvm2ice_tests/fp.convert.ll b/tests_lit/llvm2ice_tests/fp.convert.ll |
index d1bd74384dcf6f10d0ff618f64164be51de43eff..9c3dabb1ba76b75683bc96fedd9fc93f26412055 100644 |
--- a/tests_lit/llvm2ice_tests/fp.convert.ll |
+++ b/tests_lit/llvm2ice_tests/fp.convert.ll |
@@ -21,6 +21,11 @@ |
; RUN: | %if --need=allow_dump --need=target_MIPS32 --command FileCheck %s \ |
; RUN: --check-prefix=MIPS32 |
+; RUN: %if --need=allow_dump --need=target_MIPS32 --command %p2i \ |
+; RUN: --filetype=asm --target mips32 -i %s --args -O2 --skip-unimplemented \ |
+; RUN: | %if --need=allow_dump --need=target_MIPS32 --command FileCheck %s \ |
+; RUN: --check-prefix=MIPS32O2 |
+ |
define internal float @fptrunc(double %a) { |
entry: |
%conv = fptrunc double %a to float |
@@ -33,6 +38,8 @@ entry: |
; ARM32: vcvt.f32.f64 {{s[0-9]+}}, {{d[0-9]+}} |
; MIPS32-LABEL: fptrunc |
; MIPS32: cvt.s.d |
+; MIPS32O2-LABEL: fptrunc |
+; MIPS32O2: cvt.s.d |
define internal double @fpext(float %a) { |
entry: |
@@ -46,6 +53,8 @@ entry: |
; ARM32: vcvt.f64.f32 {{d[0-9]+}}, {{s[0-9]+}} |
; MIPS32-LABEL: fpext |
; MIPS32: cvt.d.s |
+; MIPS32O2-LABEL: fpext |
+; MIPS32O2: cvt.d.s |
define internal i64 @doubleToSigned64(double %a) { |
entry: |
@@ -56,6 +65,10 @@ entry: |
; CHECK: call {{.*}} R_{{.*}} __Sz_fptosi_f64_i64 |
; ARM32-LABEL: doubleToSigned64 |
; TODO(jpp): implement this test. |
+; MIPS32-LABEL: doubleToSigned64 |
+; MIPS32: jal __Sz_fptosi_f64_i64 |
+; MIPS32O2-LABEL: doubleToSigned64 |
+; MIPS32O2: jal __Sz_fptosi_f64_i64 |
define internal i64 @floatToSigned64(float %a) { |
entry: |
@@ -66,6 +79,10 @@ entry: |
; CHECK: call {{.*}} R_{{.*}} __Sz_fptosi_f32_i64 |
; ARM32-LABEL: floatToSigned64 |
; TODO(jpp): implement this test. |
+; MIPS32-LABEL: floatToSigned64 |
+; MIPS32: jal __Sz_fptosi_f32_i64 |
+; MIPS32O2-LABEL: floatToSigned64 |
+; MIPS32O2: jal __Sz_fptosi_f32_i64 |
define internal i64 @doubleToUnsigned64(double %a) { |
entry: |
@@ -76,6 +93,10 @@ entry: |
; CHECK: call {{.*}} R_{{.*}} __Sz_fptoui_f64_i64 |
; ARM32-LABEL: doubleToUnsigned64 |
; TODO(jpp): implement this test. |
+; MIPS32-LABEL: doubleToUnsigned64 |
+; MIPS32: jal __Sz_fptoui_f64_i64 |
+; MIPS32O2-LABEL: doubleToUnsigned64 |
+; MIPS32O2: jal __Sz_fptoui_f64_i64 |
define internal i64 @floatToUnsigned64(float %a) { |
entry: |
@@ -86,6 +107,10 @@ entry: |
; CHECK: call {{.*}} R_{{.*}} __Sz_fptoui_f32_i64 |
; ARM32-LABEL: floatToUnsigned64 |
; TODO(jpp): implement this test. |
+; MIPS32-LABEL: floatToUnsigned64 |
+; MIPS32: jal __Sz_fptoui_f32_i64 |
+; MIPS32O2-LABEL: floatToUnsigned64 |
+; MIPS32O2: jal __Sz_fptoui_f32_i64 |
define internal i32 @doubleToSigned32(double %a) { |
entry: |
@@ -122,6 +147,11 @@ entry: |
; ARM32-LABEL: floatToSigned32 |
; ARM32-DAG: vcvt.s32.f32 [[REG:s[0-9]+]], {{s[0-9]+}} |
; ARM32-DAG: vmov {{r[0-9]+}}, [[REG]] |
+; MIPS32-LABEL: floatToSigned32 |
+; MIPS32: trunc.w.s $f{{.*}}, $f{{.*}} |
+; MIPS32O2-LABEL: floatToSigned32 |
+; MIPS32O2: trunc.w.s $[[REG:f[0-9]+]], $f{{.*}} |
+; MIPS32O2: mfc1 $v0, $[[REG]] |
define internal i32 @doubleToUnsigned32(double %a) { |
entry: |
@@ -382,6 +412,11 @@ entry: |
; ARM32-LABEL: signed32ToFloat |
; ARM32-DAG: vmov [[SRC:s[0-9]+]], {{r[0-9]+}} |
; ARM32-DAG: vcvt.f32.s32 {{s[0-9]+}}, [[SRC]] |
+; MIPS32-LABEL: signed32ToFloat |
+; MIPS32: cvt.s.w $f{{.*}}, $f{{.*}} |
+; MIPS32O2-LABEL: signed32ToFloat |
+; MIPS32O2: mtc1 $a0, $[[REG:f[0-9]+]] |
+; MIPS32O2: cvt.s.w $f{{.*}}, $[[REG]] |
define internal double @unsigned32ToDouble(i32 %a) { |
entry: |