; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -mtriple=ve -mattr=+vpu | FileCheck %s ; <256 x float> ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_false_vv_v256f32(<256 x float> %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_false_vv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: xorm %vm1, %vm0, %vm0 ; CHECK-NEXT: b.l.t (, %s10) %z = fcmp false <256 x float> %x, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_false_sv_v256f32(float %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_false_sv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: xorm %vm1, %vm0, %vm0 ; CHECK-NEXT: b.l.t (, %s10) %xins = insertelement <256 x float> undef, float %x, i32 0 %vx = shufflevector <256 x float> %xins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp false <256 x float> %vx, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_false_vs_v256f32(<256 x float> %x, float %y) { ; CHECK-LABEL: fcmp_false_vs_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: xorm %vm1, %vm0, %vm0 ; CHECK-NEXT: b.l.t (, %s10) %yins = insertelement <256 x float> undef, float %y, i32 0 %vy = shufflevector <256 x float> %yins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp false <256 x float> %x, %vy ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_oeq_vv_v256f32(<256 x float> %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_oeq_vv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 256 ; CHECK-NEXT: lvl %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.eq %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %z = fcmp oeq <256 x float> %x, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_oeq_sv_v256f32(float %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_oeq_sv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v1, %v0 ; CHECK-NEXT: vfmk.s.eq %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %xins = insertelement <256 x float> undef, float %x, i32 0 %vx = shufflevector <256 x float> %xins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp oeq <256 x float> %vx, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_oeq_vs_v256f32(<256 x float> %x, float %y) { ; CHECK-LABEL: fcmp_oeq_vs_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.eq %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %yins = insertelement <256 x float> undef, float %y, i32 0 %vy = shufflevector <256 x float> %yins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp oeq <256 x float> %x, %vy ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_ogt_vv_v256f32(<256 x float> %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_ogt_vv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 256 ; CHECK-NEXT: lvl %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.gt %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %z = fcmp ogt <256 x float> %x, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_ogt_sv_v256f32(float %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_ogt_sv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v1, %v0 ; CHECK-NEXT: vfmk.s.gt %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %xins = insertelement <256 x float> undef, float %x, i32 0 %vx = shufflevector <256 x float> %xins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp ogt <256 x float> %vx, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_ogt_vs_v256f32(<256 x float> %x, float %y) { ; CHECK-LABEL: fcmp_ogt_vs_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.gt %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %yins = insertelement <256 x float> undef, float %y, i32 0 %vy = shufflevector <256 x float> %yins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp ogt <256 x float> %x, %vy ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_oge_vv_v256f32(<256 x float> %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_oge_vv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 256 ; CHECK-NEXT: lvl %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.ge %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %z = fcmp oge <256 x float> %x, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_oge_sv_v256f32(float %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_oge_sv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v1, %v0 ; CHECK-NEXT: vfmk.s.ge %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %xins = insertelement <256 x float> undef, float %x, i32 0 %vx = shufflevector <256 x float> %xins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp oge <256 x float> %vx, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_oge_vs_v256f32(<256 x float> %x, float %y) { ; CHECK-LABEL: fcmp_oge_vs_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.ge %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %yins = insertelement <256 x float> undef, float %y, i32 0 %vy = shufflevector <256 x float> %yins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp oge <256 x float> %x, %vy ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_olt_vv_v256f32(<256 x float> %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_olt_vv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 256 ; CHECK-NEXT: lvl %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.lt %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %z = fcmp olt <256 x float> %x, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_olt_sv_v256f32(float %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_olt_sv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v1, %v0 ; CHECK-NEXT: vfmk.s.lt %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %xins = insertelement <256 x float> undef, float %x, i32 0 %vx = shufflevector <256 x float> %xins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp olt <256 x float> %vx, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_olt_vs_v256f32(<256 x float> %x, float %y) { ; CHECK-LABEL: fcmp_olt_vs_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.lt %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %yins = insertelement <256 x float> undef, float %y, i32 0 %vy = shufflevector <256 x float> %yins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp olt <256 x float> %x, %vy ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_ole_vv_v256f32(<256 x float> %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_ole_vv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 256 ; CHECK-NEXT: lvl %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.le %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %z = fcmp ole <256 x float> %x, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_ole_sv_v256f32(float %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_ole_sv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v1, %v0 ; CHECK-NEXT: vfmk.s.le %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %xins = insertelement <256 x float> undef, float %x, i32 0 %vx = shufflevector <256 x float> %xins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp ole <256 x float> %vx, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_ole_vs_v256f32(<256 x float> %x, float %y) { ; CHECK-LABEL: fcmp_ole_vs_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.le %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %yins = insertelement <256 x float> undef, float %y, i32 0 %vy = shufflevector <256 x float> %yins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp ole <256 x float> %x, %vy ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_one_vv_v256f32(<256 x float> %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_one_vv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 256 ; CHECK-NEXT: lvl %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.ne %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %z = fcmp one <256 x float> %x, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_one_sv_v256f32(float %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_one_sv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v1, %v0 ; CHECK-NEXT: vfmk.s.ne %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %xins = insertelement <256 x float> undef, float %x, i32 0 %vx = shufflevector <256 x float> %xins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp one <256 x float> %vx, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_one_vs_v256f32(<256 x float> %x, float %y) { ; CHECK-LABEL: fcmp_one_vs_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.ne %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %yins = insertelement <256 x float> undef, float %y, i32 0 %vy = shufflevector <256 x float> %yins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp one <256 x float> %x, %vy ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_ord_vv_v256f32(<256 x float> %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_ord_vv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 256 ; CHECK-NEXT: lvl %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.num %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %z = fcmp ord <256 x float> %x, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_ord_sv_v256f32(float %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_ord_sv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v1, %v0 ; CHECK-NEXT: vfmk.s.num %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %xins = insertelement <256 x float> undef, float %x, i32 0 %vx = shufflevector <256 x float> %xins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp ord <256 x float> %vx, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_ord_vs_v256f32(<256 x float> %x, float %y) { ; CHECK-LABEL: fcmp_ord_vs_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.num %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %yins = insertelement <256 x float> undef, float %y, i32 0 %vy = shufflevector <256 x float> %yins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp ord <256 x float> %x, %vy ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_uno_vv_v256f32(<256 x float> %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_uno_vv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 256 ; CHECK-NEXT: lvl %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.nan %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %z = fcmp uno <256 x float> %x, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_uno_sv_v256f32(float %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_uno_sv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v1, %v0 ; CHECK-NEXT: vfmk.s.nan %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %xins = insertelement <256 x float> undef, float %x, i32 0 %vx = shufflevector <256 x float> %xins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp uno <256 x float> %vx, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_uno_vs_v256f32(<256 x float> %x, float %y) { ; CHECK-LABEL: fcmp_uno_vs_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.nan %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %yins = insertelement <256 x float> undef, float %y, i32 0 %vy = shufflevector <256 x float> %yins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp uno <256 x float> %x, %vy ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_ueq_vv_v256f32(<256 x float> %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_ueq_vv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 256 ; CHECK-NEXT: lvl %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.eqnan %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %z = fcmp ueq <256 x float> %x, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_ueq_sv_v256f32(float %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_ueq_sv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v1, %v0 ; CHECK-NEXT: vfmk.s.eqnan %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %xins = insertelement <256 x float> undef, float %x, i32 0 %vx = shufflevector <256 x float> %xins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp ueq <256 x float> %vx, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_ueq_vs_v256f32(<256 x float> %x, float %y) { ; CHECK-LABEL: fcmp_ueq_vs_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.eqnan %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %yins = insertelement <256 x float> undef, float %y, i32 0 %vy = shufflevector <256 x float> %yins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp ueq <256 x float> %x, %vy ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_ugt_vv_v256f32(<256 x float> %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_ugt_vv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 256 ; CHECK-NEXT: lvl %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.gtnan %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %z = fcmp ugt <256 x float> %x, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_ugt_sv_v256f32(float %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_ugt_sv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v1, %v0 ; CHECK-NEXT: vfmk.s.gtnan %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %xins = insertelement <256 x float> undef, float %x, i32 0 %vx = shufflevector <256 x float> %xins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp ugt <256 x float> %vx, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_ugt_vs_v256f32(<256 x float> %x, float %y) { ; CHECK-LABEL: fcmp_ugt_vs_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.gtnan %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %yins = insertelement <256 x float> undef, float %y, i32 0 %vy = shufflevector <256 x float> %yins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp ugt <256 x float> %x, %vy ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_uge_vv_v256f32(<256 x float> %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_uge_vv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 256 ; CHECK-NEXT: lvl %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.genan %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %z = fcmp uge <256 x float> %x, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_uge_sv_v256f32(float %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_uge_sv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v1, %v0 ; CHECK-NEXT: vfmk.s.genan %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %xins = insertelement <256 x float> undef, float %x, i32 0 %vx = shufflevector <256 x float> %xins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp uge <256 x float> %vx, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_uge_vs_v256f32(<256 x float> %x, float %y) { ; CHECK-LABEL: fcmp_uge_vs_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.genan %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %yins = insertelement <256 x float> undef, float %y, i32 0 %vy = shufflevector <256 x float> %yins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp uge <256 x float> %x, %vy ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_ult_vv_v256f32(<256 x float> %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_ult_vv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 256 ; CHECK-NEXT: lvl %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.ltnan %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %z = fcmp ult <256 x float> %x, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_ult_sv_v256f32(float %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_ult_sv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v1, %v0 ; CHECK-NEXT: vfmk.s.ltnan %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %xins = insertelement <256 x float> undef, float %x, i32 0 %vx = shufflevector <256 x float> %xins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp ult <256 x float> %vx, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_ult_vs_v256f32(<256 x float> %x, float %y) { ; CHECK-LABEL: fcmp_ult_vs_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.ltnan %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %yins = insertelement <256 x float> undef, float %y, i32 0 %vy = shufflevector <256 x float> %yins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp ult <256 x float> %x, %vy ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_ule_vv_v256f32(<256 x float> %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_ule_vv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 256 ; CHECK-NEXT: lvl %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.lenan %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %z = fcmp ule <256 x float> %x, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_ule_sv_v256f32(float %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_ule_sv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v1, %v0 ; CHECK-NEXT: vfmk.s.lenan %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %xins = insertelement <256 x float> undef, float %x, i32 0 %vx = shufflevector <256 x float> %xins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp ule <256 x float> %vx, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_ule_vs_v256f32(<256 x float> %x, float %y) { ; CHECK-LABEL: fcmp_ule_vs_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.lenan %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %yins = insertelement <256 x float> undef, float %y, i32 0 %vy = shufflevector <256 x float> %yins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp ule <256 x float> %x, %vy ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_une_vv_v256f32(<256 x float> %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_une_vv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 256 ; CHECK-NEXT: lvl %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.nenan %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %z = fcmp une <256 x float> %x, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_une_sv_v256f32(float %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_une_sv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v1, %v0 ; CHECK-NEXT: vfmk.s.nenan %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %xins = insertelement <256 x float> undef, float %x, i32 0 %vx = shufflevector <256 x float> %xins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp une <256 x float> %vx, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_une_vs_v256f32(<256 x float> %x, float %y) { ; CHECK-LABEL: fcmp_une_vs_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s1, 256 ; CHECK-NEXT: lvl %s1 ; CHECK-NEXT: vbrd %v1, %s0 ; CHECK-NEXT: vfcmp.s %v0, %v0, %v1 ; CHECK-NEXT: vfmk.s.nenan %vm1, %v0 ; CHECK-NEXT: b.l.t (, %s10) %yins = insertelement <256 x float> undef, float %y, i32 0 %vy = shufflevector <256 x float> %yins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp une <256 x float> %x, %vy ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_true_vv_v256f32(<256 x float> %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_true_vv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: andm %vm1, %vm0, %vm0 ; CHECK-NEXT: b.l.t (, %s10) %z = fcmp true <256 x float> %x, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_true_sv_v256f32(float %x, <256 x float> %y) { ; CHECK-LABEL: fcmp_true_sv_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: andm %vm1, %vm0, %vm0 ; CHECK-NEXT: b.l.t (, %s10) %xins = insertelement <256 x float> undef, float %x, i32 0 %vx = shufflevector <256 x float> %xins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp true <256 x float> %vx, %y ret <256 x i1> %z } ; Function Attrs: nounwind define fastcc <256 x i1> @fcmp_true_vs_v256f32(<256 x float> %x, float %y) { ; CHECK-LABEL: fcmp_true_vs_v256f32: ; CHECK: # %bb.0: ; CHECK-NEXT: andm %vm1, %vm0, %vm0 ; CHECK-NEXT: b.l.t (, %s10) %yins = insertelement <256 x float> undef, float %y, i32 0 %vy = shufflevector <256 x float> %yins, <256 x float> undef, <256 x i32> zeroinitializer %z = fcmp true <256 x float> %x, %vy ret <256 x i1> %z }