brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · 29fb608 Raw
73 lines · plain
1; RUN: llc < %s -mtriple=ve -mattr=+vpu | FileCheck %s2 3;;; Test vector floating square root intrinsic instructions4;;;5;;; Note:6;;;   We test VFSQRT*vl and VFSQRT*vl_v instructions.7 8; Function Attrs: nounwind readnone9define fastcc <256 x double> @vfsqrtd_vvl(<256 x double> %0) {10; CHECK-LABEL: vfsqrtd_vvl:11; CHECK:       # %bb.0:12; CHECK-NEXT:    lea %s0, 25613; CHECK-NEXT:    lvl %s014; CHECK-NEXT:    vfsqrt.d %v0, %v015; CHECK-NEXT:    b.l.t (, %s10)16  %2 = tail call fast <256 x double> @llvm.ve.vl.vfsqrtd.vvl(<256 x double> %0, i32 256)17  ret <256 x double> %218}19 20; Function Attrs: nounwind readnone21declare <256 x double> @llvm.ve.vl.vfsqrtd.vvl(<256 x double>, i32)22 23; Function Attrs: nounwind readnone24define fastcc <256 x double> @vfsqrtd_vvvl(<256 x double> %0, <256 x double> %1) {25; CHECK-LABEL: vfsqrtd_vvvl:26; CHECK:       # %bb.0:27; CHECK-NEXT:    lea %s0, 12828; CHECK-NEXT:    lvl %s029; CHECK-NEXT:    vfsqrt.d %v1, %v030; CHECK-NEXT:    lea %s16, 25631; CHECK-NEXT:    lvl %s1632; CHECK-NEXT:    vor %v0, (0)1, %v133; CHECK-NEXT:    b.l.t (, %s10)34  %3 = tail call fast <256 x double> @llvm.ve.vl.vfsqrtd.vvvl(<256 x double> %0, <256 x double> %1, i32 128)35  ret <256 x double> %336}37 38; Function Attrs: nounwind readnone39declare <256 x double> @llvm.ve.vl.vfsqrtd.vvvl(<256 x double>, <256 x double>, i32)40 41; Function Attrs: nounwind readnone42define fastcc <256 x double> @vfsqrts_vvl(<256 x double> %0) {43; CHECK-LABEL: vfsqrts_vvl:44; CHECK:       # %bb.0:45; CHECK-NEXT:    lea %s0, 25646; CHECK-NEXT:    lvl %s047; CHECK-NEXT:    vfsqrt.s %v0, %v048; CHECK-NEXT:    b.l.t (, %s10)49  %2 = tail call fast <256 x double> @llvm.ve.vl.vfsqrts.vvl(<256 x double> %0, i32 256)50  ret <256 x double> %251}52 53; Function Attrs: nounwind readnone54declare <256 x double> @llvm.ve.vl.vfsqrts.vvl(<256 x double>, i32)55 56; Function Attrs: nounwind readnone57define fastcc <256 x double> @vfsqrts_vvvl(<256 x double> %0, <256 x double> %1) {58; CHECK-LABEL: vfsqrts_vvvl:59; CHECK:       # %bb.0:60; CHECK-NEXT:    lea %s0, 12861; CHECK-NEXT:    lvl %s062; CHECK-NEXT:    vfsqrt.s %v1, %v063; CHECK-NEXT:    lea %s16, 25664; CHECK-NEXT:    lvl %s1665; CHECK-NEXT:    vor %v0, (0)1, %v166; CHECK-NEXT:    b.l.t (, %s10)67  %3 = tail call fast <256 x double> @llvm.ve.vl.vfsqrts.vvvl(<256 x double> %0, <256 x double> %1, i32 128)68  ret <256 x double> %369}70 71; Function Attrs: nounwind readnone72declare <256 x double> @llvm.ve.vl.vfsqrts.vvvl(<256 x double>, <256 x double>, i32)73