1; RUN: llc -mtriple mips64-unknown-linux -mcpu=mips64r5 -mattr=+msa < %s | FileCheck %s 2 3; The fcmp fast flag will result in conversion from 4; setolt, setoeq, setole, setone to 5; 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, %b 11 ; CHECK: fclt.d 12 ret <2 x i1> %0 13} 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, %b 18 ; CHECK: fclt.w 19 ret <4 x i1> %0 20} 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, %b 25 ; CHECK: fceq.d 26 ret <2 x i1> %0 27} 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, %b 32 ; CHECK: fceq.w 33 ret <4 x i1> %0 34} 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, %b 39 ; CHECK: fcle.d 40 ret <2 x i1> %0 41} 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, %b 46 ; CHECK: fcle.w 47 ret <4 x i1> %0 48} 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, %b 53 ; CHECK: fcne.d 54 ret <2 x i1> %0 55} 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, %b 60 ; CHECK: fcne.w 61 ret <4 x i1> %0 62} 63 64