64 lines · plain
1; RUN: llc -mtriple mips64-unknown-linux -mcpu=mips64r5 -mattr=+msa < %s | FileCheck %s2 3; The fcmp fast flag will result in conversion from4; setolt, setoeq, setole, setone to5; setlt, seteq, setle, setne nodes.6; Test that the latter nodes are matched to the same instructions as the former.7 8define <2 x i1> @testlt_v2f64(<2 x double> %a, <2 x double> %b) {9start:10 %0 = fcmp fast olt <2 x double> %a, %b11 ; CHECK: fclt.d12 ret <2 x i1> %013}14 15define <4 x i1> @testlt_v4f32(<4 x float> %a, <4 x float> %b) {16start:17 %0 = fcmp fast olt <4 x float> %a, %b18 ; CHECK: fclt.w19 ret <4 x i1> %020}21 22define <2 x i1> @testeq_v2f64(<2 x double> %a, <2 x double> %b) {23start:24 %0 = fcmp fast oeq <2 x double> %a, %b25 ; CHECK: fceq.d26 ret <2 x i1> %027}28 29define <4 x i1> @testeq_v4f32(<4 x float> %a, <4 x float> %b) {30start:31 %0 = fcmp fast oeq <4 x float> %a, %b32 ; CHECK: fceq.w33 ret <4 x i1> %034}35 36define <2 x i1> @testle_v2f64(<2 x double> %a, <2 x double> %b) {37start:38 %0 = fcmp fast ole <2 x double> %a, %b39 ; CHECK: fcle.d40 ret <2 x i1> %041}42 43define <4 x i1> @testle_v4f32(<4 x float> %a, <4 x float> %b) {44start:45 %0 = fcmp fast ole <4 x float> %a, %b46 ; CHECK: fcle.w47 ret <4 x i1> %048}49 50define <2 x i1> @testne_v2f64(<2 x double> %a, <2 x double> %b) {51start:52 %0 = fcmp fast one <2 x double> %a, %b53 ; CHECK: fcne.d54 ret <2 x i1> %055}56 57define <4 x i1> @testne_v4f32(<4 x float> %a, <4 x float> %b) {58start:59 %0 = fcmp fast one <4 x float> %a, %b60 ; CHECK: fcne.w61 ret <4 x i1> %062}63 64