forked from OSchip/llvm-project
4326 lines
145 KiB
LLVM
4326 lines
145 KiB
LLVM
; RUN: llc < %s -mtriple=ve -mattr=+vpu | FileCheck %s
|
|
|
|
;;; Test vector form mask intrinsic instructions
|
|
;;;
|
|
;;; Note:
|
|
;;; We test VFMK*al, VFMK*nal, VFMK*vl, VFMK*vml, PVFMK*yal, PVFMK*ynal,
|
|
;;; PVFMK*vl, PVFMK*vml, PVFMK*yvl, and PVFMK*yvyl instructions.
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmklat_ml() {
|
|
; CHECK-LABEL: vfmklat_ml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.at %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%1 = tail call <256 x i1> @llvm.ve.vl.vfmklat.ml(i32 256)
|
|
ret <256 x i1> %1
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmklat.ml(i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmklaf_ml() {
|
|
; CHECK-LABEL: vfmklaf_ml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.af %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%1 = tail call <256 x i1> @llvm.ve.vl.vfmklaf.ml(i32 256)
|
|
ret <256 x i1> %1
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmklaf.ml(i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmklgt_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmklgt_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.gt %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmklgt.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmklgt.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmklgt_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmklgt_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.gt %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmklgt.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmklgt.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkllt_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkllt_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.lt %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkllt.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkllt.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkllt_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkllt_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.lt %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkllt.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkllt.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmklne_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmklne_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.ne %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmklne.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmklne.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmklne_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmklne_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.ne %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmklne.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmklne.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkleq_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkleq_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.eq %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkleq.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkleq.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkleq_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkleq_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.eq %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkleq.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkleq.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmklge_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmklge_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.ge %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmklge.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmklge.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmklge_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmklge_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.ge %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmklge.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmklge.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmklle_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmklle_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.le %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmklle.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmklle.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmklle_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmklle_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.le %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmklle.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmklle.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmklnum_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmklnum_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.num %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmklnum.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmklnum.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmklnum_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmklnum_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.num %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmklnum.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmklnum.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmklnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmklnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.nan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmklnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmklnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmklnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmklnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.nan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmklnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmklnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmklgtnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmklgtnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.gtnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmklgtnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmklgtnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmklgtnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmklgtnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.gtnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmklgtnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmklgtnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmklltnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmklltnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.ltnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmklltnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmklltnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmklltnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmklltnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.ltnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmklltnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmklltnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmklnenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmklnenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.nenan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmklnenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmklnenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmklnenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmklnenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.nenan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmklnenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmklnenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkleqnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkleqnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.eqnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkleqnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkleqnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkleqnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkleqnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.eqnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkleqnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkleqnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmklgenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmklgenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.genan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmklgenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmklgenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmklgenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmklgenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.genan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmklgenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmklgenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkllenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkllenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.lenan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkllenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkllenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkllenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkllenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.lenan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkllenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkllenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwgt_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkwgt_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.gt %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkwgt.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwgt.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwgt_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkwgt_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.gt %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkwgt.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwgt.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwlt_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkwlt_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.lt %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkwlt.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwlt.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwlt_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkwlt_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.lt %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkwlt.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwlt.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwne_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkwne_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.ne %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkwne.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwne.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwne_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkwne_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.ne %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkwne.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwne.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkweq_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkweq_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.eq %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkweq.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkweq.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkweq_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkweq_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.eq %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkweq.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkweq.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwge_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkwge_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.ge %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkwge.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwge.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwge_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkwge_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.ge %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkwge.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwge.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwle_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkwle_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.le %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkwle.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwle.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwle_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkwle_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.le %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkwle.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwle.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwnum_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkwnum_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.num %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkwnum.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwnum.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwnum_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkwnum_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.num %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkwnum.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwnum.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkwnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.nan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkwnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkwnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.nan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkwnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwgtnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkwgtnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.gtnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkwgtnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwgtnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwgtnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkwgtnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.gtnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkwgtnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwgtnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwltnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkwltnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.ltnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkwltnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwltnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwltnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkwltnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.ltnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkwltnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwltnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwnenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkwnenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.nenan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkwnenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwnenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwnenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkwnenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.nenan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkwnenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwnenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkweqnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkweqnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.eqnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkweqnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkweqnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkweqnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkweqnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.eqnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkweqnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkweqnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwgenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkwgenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.genan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkwgenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwgenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwgenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkwgenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.genan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkwgenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwgenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwlenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkwlenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.lenan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkwlenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwlenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkwlenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkwlenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.lenan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkwlenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkwlenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdgt_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkdgt_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.gt %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkdgt.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdgt.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdgt_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkdgt_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.gt %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkdgt.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdgt.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdlt_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkdlt_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.lt %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkdlt.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdlt.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdlt_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkdlt_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.lt %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkdlt.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdlt.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdne_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkdne_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.ne %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkdne.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdne.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdne_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkdne_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.ne %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkdne.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdne.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdeq_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkdeq_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.eq %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkdeq.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdeq.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdeq_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkdeq_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.eq %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkdeq.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdeq.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdge_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkdge_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.ge %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkdge.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdge.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdge_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkdge_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.ge %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkdge.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdge.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdle_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkdle_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.le %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkdle.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdle.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdle_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkdle_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.le %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkdle.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdle.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdnum_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkdnum_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.num %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkdnum.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdnum.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdnum_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkdnum_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.num %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkdnum.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdnum.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkdnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.nan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkdnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkdnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.nan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkdnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdgtnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkdgtnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.gtnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkdgtnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdgtnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdgtnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkdgtnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.gtnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkdgtnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdgtnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdltnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkdltnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.ltnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkdltnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdltnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdltnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkdltnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.ltnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkdltnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdltnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdnenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkdnenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.nenan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkdnenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdnenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdnenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkdnenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.nenan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkdnenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdnenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdeqnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkdeqnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.eqnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkdeqnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdeqnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdeqnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkdeqnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.eqnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkdeqnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdeqnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdgenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkdgenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.genan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkdgenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdgenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdgenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkdgenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.genan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkdgenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdgenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdlenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkdlenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.lenan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkdlenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdlenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkdlenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkdlenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.d.lenan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkdlenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkdlenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmksgt_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmksgt_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.gt %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmksgt.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmksgt.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmksgt_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmksgt_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.gt %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmksgt.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmksgt.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkslt_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkslt_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.lt %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkslt.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkslt.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkslt_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkslt_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.lt %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkslt.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkslt.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmksne_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmksne_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.ne %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmksne.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmksne.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmksne_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmksne_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.ne %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmksne.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmksne.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkseq_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkseq_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.eq %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkseq.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkseq.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkseq_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkseq_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.eq %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkseq.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkseq.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmksge_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmksge_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.ge %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmksge.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmksge.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmksge_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmksge_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.ge %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmksge.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmksge.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmksle_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmksle_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.le %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmksle.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmksle.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmksle_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmksle_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.le %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmksle.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmksle.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmksnum_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmksnum_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.num %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmksnum.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmksnum.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmksnum_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmksnum_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.num %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmksnum.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmksnum.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmksnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmksnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.nan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmksnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmksnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmksnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmksnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.nan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmksnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmksnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmksgtnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmksgtnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.gtnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmksgtnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmksgtnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmksgtnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmksgtnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.gtnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmksgtnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmksgtnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmksltnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmksltnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.ltnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmksltnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmksltnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmksltnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmksltnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.ltnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmksltnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmksltnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmksnenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmksnenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.nenan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmksnenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmksnenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmksnenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmksnenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.nenan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmksnenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmksnenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkseqnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkseqnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.eqnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkseqnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkseqnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkseqnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkseqnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.eqnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkseqnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkseqnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmksgenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmksgenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.genan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmksgenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmksgenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmksgenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmksgenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.genan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmksgenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmksgenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkslenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: vfmkslenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.lenan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.vfmkslenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkslenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @vfmkslenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: vfmkslenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.s.lenan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.vfmkslenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.vfmkslenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkat_Ml() {
|
|
; CHECK-LABEL: pvfmkat_Ml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.at %vm2
|
|
; CHECK-NEXT: vfmk.l.at %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%1 = tail call <512 x i1> @llvm.ve.vl.pvfmkat.Ml(i32 256)
|
|
ret <512 x i1> %1
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkat.Ml(i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkaf_Ml() {
|
|
; CHECK-LABEL: pvfmkaf_Ml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.l.af %vm2
|
|
; CHECK-NEXT: vfmk.l.af %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%1 = tail call <512 x i1> @llvm.ve.vl.pvfmkaf.Ml(i32 256)
|
|
ret <512 x i1> %1
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkaf.Ml(i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkslogt_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkslogt_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.gt %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkslogt.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkslogt.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkslogt_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkslogt_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.gt %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkslogt.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkslogt.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkslolt_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkslolt_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.lt %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkslolt.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkslolt.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkslolt_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkslolt_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.lt %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkslolt.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkslolt.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkslone_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkslone_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.ne %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkslone.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkslone.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkslone_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkslone_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.ne %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkslone.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkslone.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksloeq_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksloeq_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.eq %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmksloeq.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksloeq.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksloeq_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksloeq_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.eq %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmksloeq.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksloeq.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksloge_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksloge_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.ge %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmksloge.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksloge.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksloge_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksloge_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.ge %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmksloge.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksloge.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkslole_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkslole_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.le %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkslole.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkslole.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkslole_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkslole_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.le %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkslole.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkslole.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkslonum_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkslonum_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.num %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkslonum.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkslonum.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkslonum_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkslonum_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.num %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkslonum.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkslonum.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkslonan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkslonan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.nan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkslonan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkslonan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkslonan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkslonan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.nan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkslonan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkslonan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkslogtnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkslogtnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.gtnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkslogtnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkslogtnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkslogtnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkslogtnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.gtnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkslogtnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkslogtnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksloltnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksloltnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.ltnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmksloltnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksloltnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksloltnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksloltnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.ltnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmksloltnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksloltnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkslonenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkslonenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.nenan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkslonenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkslonenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkslonenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkslonenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.nenan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkslonenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkslonenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksloeqnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksloeqnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.eqnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmksloeqnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksloeqnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksloeqnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksloeqnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.eqnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmksloeqnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksloeqnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkslogenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkslogenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.genan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkslogenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkslogenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkslogenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkslogenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.genan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkslogenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkslogenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkslolenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkslolenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.lenan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkslolenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkslolenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkslolenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkslolenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.lo.lenan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkslolenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkslolenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksupgt_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksupgt_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.gt %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmksupgt.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksupgt.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksupgt_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksupgt_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.gt %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmksupgt.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksupgt.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksuplt_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksuplt_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.lt %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmksuplt.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksuplt.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksuplt_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksuplt_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.lt %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmksuplt.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksuplt.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksupne_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksupne_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.ne %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmksupne.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksupne.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksupne_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksupne_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.ne %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmksupne.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksupne.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksupeq_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksupeq_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.eq %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmksupeq.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksupeq.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksupeq_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksupeq_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.eq %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmksupeq.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksupeq.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksupge_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksupge_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.ge %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmksupge.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksupge.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksupge_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksupge_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.ge %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmksupge.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksupge.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksuple_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksuple_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.le %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmksuple.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksuple.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksuple_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksuple_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.le %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmksuple.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksuple.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksupnum_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksupnum_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.num %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmksupnum.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksupnum.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksupnum_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksupnum_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.num %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmksupnum.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksupnum.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksupnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksupnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.nan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmksupnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksupnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksupnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksupnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.nan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmksupnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksupnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksupgtnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksupgtnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.gtnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmksupgtnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksupgtnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksupgtnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksupgtnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.gtnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmksupgtnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksupgtnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksupltnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksupltnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.ltnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmksupltnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksupltnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksupltnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksupltnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.ltnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmksupltnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksupltnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksupnenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksupnenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.nenan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmksupnenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksupnenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksupnenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksupnenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.nenan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmksupnenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksupnenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksupeqnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksupeqnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.eqnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmksupeqnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksupeqnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksupeqnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksupeqnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.eqnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmksupeqnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksupeqnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksupgenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksupgenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.genan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmksupgenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksupgenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksupgenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksupgenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.genan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmksupgenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksupgenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksuplenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksuplenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.lenan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmksuplenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksuplenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmksuplenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksuplenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.lenan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmksuplenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmksuplenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwlogt_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwlogt_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.gt %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwlogt.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwlogt.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwlogt_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwlogt_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.gt %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwlogt.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwlogt.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwlolt_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwlolt_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.lt %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwlolt.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwlolt.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwlolt_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwlolt_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.lt %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwlolt.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwlolt.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwlone_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwlone_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.ne %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwlone.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwlone.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwlone_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwlone_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.ne %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwlone.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwlone.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwloeq_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwloeq_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.eq %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwloeq.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwloeq.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwloeq_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwloeq_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.eq %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwloeq.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwloeq.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwloge_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwloge_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.ge %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwloge.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwloge.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwloge_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwloge_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.ge %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwloge.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwloge.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwlole_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwlole_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.le %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwlole.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwlole.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwlole_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwlole_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.le %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwlole.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwlole.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwlonum_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwlonum_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.num %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwlonum.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwlonum.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwlonum_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwlonum_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.num %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwlonum.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwlonum.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwlonan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwlonan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.nan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwlonan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwlonan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwlonan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwlonan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.nan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwlonan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwlonan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwlogtnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwlogtnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.gtnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwlogtnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwlogtnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwlogtnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwlogtnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.gtnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwlogtnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwlogtnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwloltnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwloltnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.ltnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwloltnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwloltnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwloltnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwloltnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.ltnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwloltnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwloltnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwlonenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwlonenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.nenan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwlonenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwlonenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwlonenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwlonenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.nenan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwlonenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwlonenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwloeqnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwloeqnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.eqnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwloeqnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwloeqnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwloeqnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwloeqnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.eqnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwloeqnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwloeqnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwlogenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwlogenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.genan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwlogenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwlogenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwlogenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwlogenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.genan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwlogenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwlogenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwlolenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwlolenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.lenan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwlolenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwlolenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwlolenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwlolenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: vfmk.w.lenan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwlolenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwlolenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwupgt_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwupgt_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.gt %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwupgt.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwupgt.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwupgt_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwupgt_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.gt %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwupgt.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwupgt.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwuplt_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwuplt_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.lt %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwuplt.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwuplt.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwuplt_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwuplt_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.lt %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwuplt.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwuplt.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwupne_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwupne_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.ne %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwupne.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwupne.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwupne_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwupne_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.ne %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwupne.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwupne.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwupeq_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwupeq_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.eq %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwupeq.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwupeq.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwupeq_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwupeq_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.eq %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwupeq.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwupeq.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwupge_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwupge_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.ge %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwupge.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwupge.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwupge_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwupge_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.ge %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwupge.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwupge.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwuple_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwuple_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.le %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwuple.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwuple.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwuple_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwuple_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.le %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwuple.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwuple.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwupnum_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwupnum_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.num %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwupnum.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwupnum.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwupnum_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwupnum_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.num %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwupnum.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwupnum.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwupnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwupnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.nan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwupnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwupnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwupnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwupnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.nan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwupnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwupnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwupgtnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwupgtnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.gtnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwupgtnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwupgtnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwupgtnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwupgtnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.gtnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwupgtnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwupgtnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwupltnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwupltnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.ltnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwupltnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwupltnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwupltnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwupltnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.ltnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwupltnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwupltnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwupnenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwupnenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.nenan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwupnenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwupnenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwupnenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwupnenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.nenan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwupnenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwupnenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwupeqnan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwupeqnan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.eqnan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwupeqnan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwupeqnan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwupeqnan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwupeqnan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.eqnan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwupeqnan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwupeqnan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwupgenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwupgenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.genan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwupgenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwupgenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwupgenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwupgenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.genan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwupgenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwupgenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwuplenan_mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwuplenan_mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.lenan %vm1, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <256 x i1> @llvm.ve.vl.pvfmkwuplenan.mvl(<256 x double> %0, i32 256)
|
|
ret <256 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwuplenan.mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <256 x i1> @pvfmkwuplenan_mvml(<256 x double> %0, <256 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwuplenan_mvml:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.lenan %vm1, %v0, %vm1
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <256 x i1> @llvm.ve.vl.pvfmkwuplenan.mvml(<256 x double> %0, <256 x i1> %1, i32 256)
|
|
ret <256 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <256 x i1> @llvm.ve.vl.pvfmkwuplenan.mvml(<256 x double>, <256 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmksgt_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksgt_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.gt %vm2, %v0
|
|
; CHECK-NEXT: pvfmk.s.lo.gt %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmksgt.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmksgt.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmksgt_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksgt_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.gt %vm2, %v0, %vm2
|
|
; CHECK-NEXT: pvfmk.s.lo.gt %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmksgt.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmksgt.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkslt_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkslt_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.lt %vm2, %v0
|
|
; CHECK-NEXT: pvfmk.s.lo.lt %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmkslt.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkslt.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkslt_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkslt_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.lt %vm2, %v0, %vm2
|
|
; CHECK-NEXT: pvfmk.s.lo.lt %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmkslt.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkslt.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmksne_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksne_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.ne %vm2, %v0
|
|
; CHECK-NEXT: pvfmk.s.lo.ne %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmksne.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmksne.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmksne_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksne_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.ne %vm2, %v0, %vm2
|
|
; CHECK-NEXT: pvfmk.s.lo.ne %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmksne.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmksne.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkseq_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkseq_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.eq %vm2, %v0
|
|
; CHECK-NEXT: pvfmk.s.lo.eq %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmkseq.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkseq.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkseq_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkseq_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.eq %vm2, %v0, %vm2
|
|
; CHECK-NEXT: pvfmk.s.lo.eq %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmkseq.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkseq.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmksge_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksge_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.ge %vm2, %v0
|
|
; CHECK-NEXT: pvfmk.s.lo.ge %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmksge.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmksge.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmksge_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksge_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.ge %vm2, %v0, %vm2
|
|
; CHECK-NEXT: pvfmk.s.lo.ge %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmksge.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmksge.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmksle_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksle_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.le %vm2, %v0
|
|
; CHECK-NEXT: pvfmk.s.lo.le %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmksle.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmksle.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmksle_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksle_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.le %vm2, %v0, %vm2
|
|
; CHECK-NEXT: pvfmk.s.lo.le %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmksle.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmksle.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmksnum_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksnum_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.num %vm2, %v0
|
|
; CHECK-NEXT: pvfmk.s.lo.num %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmksnum.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmksnum.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmksnum_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksnum_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.num %vm2, %v0, %vm2
|
|
; CHECK-NEXT: pvfmk.s.lo.num %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmksnum.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmksnum.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmksnan_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksnan_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.nan %vm2, %v0
|
|
; CHECK-NEXT: pvfmk.s.lo.nan %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmksnan.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmksnan.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmksnan_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksnan_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.nan %vm2, %v0, %vm2
|
|
; CHECK-NEXT: pvfmk.s.lo.nan %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmksnan.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmksnan.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmksgtnan_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksgtnan_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.gtnan %vm2, %v0
|
|
; CHECK-NEXT: pvfmk.s.lo.gtnan %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmksgtnan.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmksgtnan.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmksgtnan_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksgtnan_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.gtnan %vm2, %v0, %vm2
|
|
; CHECK-NEXT: pvfmk.s.lo.gtnan %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmksgtnan.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmksgtnan.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmksltnan_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksltnan_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.ltnan %vm2, %v0
|
|
; CHECK-NEXT: pvfmk.s.lo.ltnan %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmksltnan.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmksltnan.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmksltnan_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksltnan_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.ltnan %vm2, %v0, %vm2
|
|
; CHECK-NEXT: pvfmk.s.lo.ltnan %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmksltnan.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmksltnan.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmksnenan_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksnenan_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.nenan %vm2, %v0
|
|
; CHECK-NEXT: pvfmk.s.lo.nenan %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmksnenan.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmksnenan.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmksnenan_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksnenan_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.nenan %vm2, %v0, %vm2
|
|
; CHECK-NEXT: pvfmk.s.lo.nenan %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmksnenan.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmksnenan.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkseqnan_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkseqnan_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.eqnan %vm2, %v0
|
|
; CHECK-NEXT: pvfmk.s.lo.eqnan %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmkseqnan.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkseqnan.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkseqnan_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkseqnan_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.eqnan %vm2, %v0, %vm2
|
|
; CHECK-NEXT: pvfmk.s.lo.eqnan %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmkseqnan.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkseqnan.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmksgenan_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmksgenan_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.genan %vm2, %v0
|
|
; CHECK-NEXT: pvfmk.s.lo.genan %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmksgenan.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmksgenan.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmksgenan_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmksgenan_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.genan %vm2, %v0, %vm2
|
|
; CHECK-NEXT: pvfmk.s.lo.genan %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmksgenan.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmksgenan.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkslenan_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkslenan_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.lenan %vm2, %v0
|
|
; CHECK-NEXT: pvfmk.s.lo.lenan %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmkslenan.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkslenan.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkslenan_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkslenan_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.s.up.lenan %vm2, %v0, %vm2
|
|
; CHECK-NEXT: pvfmk.s.lo.lenan %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmkslenan.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkslenan.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwgt_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwgt_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.gt %vm2, %v0
|
|
; CHECK-NEXT: vfmk.w.gt %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmkwgt.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwgt.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwgt_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwgt_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.gt %vm2, %v0, %vm2
|
|
; CHECK-NEXT: vfmk.w.gt %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmkwgt.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwgt.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwlt_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwlt_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.lt %vm2, %v0
|
|
; CHECK-NEXT: vfmk.w.lt %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmkwlt.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwlt.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwlt_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwlt_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.lt %vm2, %v0, %vm2
|
|
; CHECK-NEXT: vfmk.w.lt %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmkwlt.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwlt.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwne_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwne_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.ne %vm2, %v0
|
|
; CHECK-NEXT: vfmk.w.ne %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmkwne.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwne.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwne_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwne_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.ne %vm2, %v0, %vm2
|
|
; CHECK-NEXT: vfmk.w.ne %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmkwne.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwne.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkweq_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkweq_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.eq %vm2, %v0
|
|
; CHECK-NEXT: vfmk.w.eq %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmkweq.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkweq.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkweq_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkweq_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.eq %vm2, %v0, %vm2
|
|
; CHECK-NEXT: vfmk.w.eq %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmkweq.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkweq.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwge_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwge_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.ge %vm2, %v0
|
|
; CHECK-NEXT: vfmk.w.ge %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmkwge.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwge.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwge_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwge_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.ge %vm2, %v0, %vm2
|
|
; CHECK-NEXT: vfmk.w.ge %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmkwge.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwge.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwle_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwle_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.le %vm2, %v0
|
|
; CHECK-NEXT: vfmk.w.le %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmkwle.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwle.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwle_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwle_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.le %vm2, %v0, %vm2
|
|
; CHECK-NEXT: vfmk.w.le %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmkwle.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwle.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwnum_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwnum_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.num %vm2, %v0
|
|
; CHECK-NEXT: vfmk.w.num %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmkwnum.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwnum.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwnum_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwnum_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.num %vm2, %v0, %vm2
|
|
; CHECK-NEXT: vfmk.w.num %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmkwnum.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwnum.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwnan_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwnan_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.nan %vm2, %v0
|
|
; CHECK-NEXT: vfmk.w.nan %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmkwnan.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwnan.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwnan_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwnan_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.nan %vm2, %v0, %vm2
|
|
; CHECK-NEXT: vfmk.w.nan %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmkwnan.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwnan.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwgtnan_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwgtnan_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.gtnan %vm2, %v0
|
|
; CHECK-NEXT: vfmk.w.gtnan %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmkwgtnan.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwgtnan.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwgtnan_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwgtnan_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.gtnan %vm2, %v0, %vm2
|
|
; CHECK-NEXT: vfmk.w.gtnan %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmkwgtnan.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwgtnan.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwltnan_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwltnan_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.ltnan %vm2, %v0
|
|
; CHECK-NEXT: vfmk.w.ltnan %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmkwltnan.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwltnan.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwltnan_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwltnan_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.ltnan %vm2, %v0, %vm2
|
|
; CHECK-NEXT: vfmk.w.ltnan %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmkwltnan.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwltnan.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwnenan_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwnenan_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.nenan %vm2, %v0
|
|
; CHECK-NEXT: vfmk.w.nenan %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmkwnenan.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwnenan.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwnenan_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwnenan_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.nenan %vm2, %v0, %vm2
|
|
; CHECK-NEXT: vfmk.w.nenan %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmkwnenan.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwnenan.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkweqnan_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkweqnan_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.eqnan %vm2, %v0
|
|
; CHECK-NEXT: vfmk.w.eqnan %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmkweqnan.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkweqnan.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkweqnan_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkweqnan_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.eqnan %vm2, %v0, %vm2
|
|
; CHECK-NEXT: vfmk.w.eqnan %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmkweqnan.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkweqnan.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwgenan_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwgenan_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.genan %vm2, %v0
|
|
; CHECK-NEXT: vfmk.w.genan %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmkwgenan.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwgenan.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwgenan_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwgenan_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.genan %vm2, %v0, %vm2
|
|
; CHECK-NEXT: vfmk.w.genan %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmkwgenan.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwgenan.MvMl(<256 x double>, <512 x i1>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwlenan_Mvl(<256 x double> %0) {
|
|
; CHECK-LABEL: pvfmkwlenan_Mvl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.lenan %vm2, %v0
|
|
; CHECK-NEXT: vfmk.w.lenan %vm3, %v0
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%2 = tail call <512 x i1> @llvm.ve.vl.pvfmkwlenan.Mvl(<256 x double> %0, i32 256)
|
|
ret <512 x i1> %2
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwlenan.Mvl(<256 x double>, i32)
|
|
|
|
; Function Attrs: nounwind readnone
|
|
define fastcc <512 x i1> @pvfmkwlenan_MvMl(<256 x double> %0, <512 x i1> %1) {
|
|
; CHECK-LABEL: pvfmkwlenan_MvMl:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: lea %s0, 256
|
|
; CHECK-NEXT: lvl %s0
|
|
; CHECK-NEXT: pvfmk.w.up.lenan %vm2, %v0, %vm2
|
|
; CHECK-NEXT: vfmk.w.lenan %vm3, %v0, %vm3
|
|
; CHECK-NEXT: b.l.t (, %s10)
|
|
%3 = tail call <512 x i1> @llvm.ve.vl.pvfmkwlenan.MvMl(<256 x double> %0, <512 x i1> %1, i32 256)
|
|
ret <512 x i1> %3
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare <512 x i1> @llvm.ve.vl.pvfmkwlenan.MvMl(<256 x double>, <512 x i1>, i32)
|