@@ -18599,7 +18599,7 @@ operation.
18599
18599
Semantics:
18600
18600
""""""""""
18601
18601
18602
- The '``llvm.vp.fadd``' intrinsic performs floating-point addition (:ref:`add <i_fadd>`)
18602
+ The '``llvm.vp.fadd``' intrinsic performs floating-point addition (:ref:`fadd <i_fadd>`)
18603
18603
of the first and second vector operand on each enabled lane. The result on
18604
18604
disabled lanes is undefined. The operation is performed in the default
18605
18605
floating-point environment.
@@ -18648,7 +18648,7 @@ operation.
18648
18648
Semantics:
18649
18649
""""""""""
18650
18650
18651
- The '``llvm.vp.fsub``' intrinsic performs floating-point subtraction (:ref:`add <i_fsub>`)
18651
+ The '``llvm.vp.fsub``' intrinsic performs floating-point subtraction (:ref:`fsub <i_fsub>`)
18652
18652
of the first and second vector operand on each enabled lane. The result on
18653
18653
disabled lanes is undefined. The operation is performed in the default
18654
18654
floating-point environment.
@@ -18697,7 +18697,7 @@ operation.
18697
18697
Semantics:
18698
18698
""""""""""
18699
18699
18700
- The '``llvm.vp.fmul``' intrinsic performs floating-point multiplication (:ref:`add <i_fmul>`)
18700
+ The '``llvm.vp.fmul``' intrinsic performs floating-point multiplication (:ref:`fmul <i_fmul>`)
18701
18701
of the first and second vector operand on each enabled lane. The result on
18702
18702
disabled lanes is undefined. The operation is performed in the default
18703
18703
floating-point environment.
@@ -18746,7 +18746,7 @@ operation.
18746
18746
Semantics:
18747
18747
""""""""""
18748
18748
18749
- The '``llvm.vp.fdiv``' intrinsic performs floating-point division (:ref:`add <i_fdiv>`)
18749
+ The '``llvm.vp.fdiv``' intrinsic performs floating-point division (:ref:`fdiv <i_fdiv>`)
18750
18750
of the first and second vector operand on each enabled lane. The result on
18751
18751
disabled lanes is undefined. The operation is performed in the default
18752
18752
floating-point environment.
@@ -18795,7 +18795,7 @@ operation.
18795
18795
Semantics:
18796
18796
""""""""""
18797
18797
18798
- The '``llvm.vp.frem``' intrinsic performs floating-point remainder (:ref:`add <i_frem>`)
18798
+ The '``llvm.vp.frem``' intrinsic performs floating-point remainder (:ref:`frem <i_frem>`)
18799
18799
of the first and second vector operand on each enabled lane. The result on
18800
18800
disabled lanes is undefined. The operation is performed in the default
18801
18801
floating-point environment.
@@ -18812,6 +18812,54 @@ Examples:
18812
18812
%also.r = select <4 x i1> %mask, <4 x float> %t, <4 x float> undef
18813
18813
18814
18814
18815
+ .. _int_vp_fneg:
18816
+
18817
+ '``llvm.vp.fneg.*``' Intrinsics
18818
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
18819
+
18820
+ Syntax:
18821
+ """""""
18822
+ This is an overloaded intrinsic.
18823
+
18824
+ ::
18825
+
18826
+ declare <16 x float> @llvm.vp.fneg.v16f32 (<16 x float> <op>, <16 x i1> <mask>, i32 <vector_length>)
18827
+ declare <vscale x 4 x float> @llvm.vp.fneg.nxv4f32 (<vscale x 4 x float> <op>, <vscale x 4 x i1> <mask>, i32 <vector_length>)
18828
+ declare <256 x double> @llvm.vp.fneg.v256f64 (<256 x double> <op>, <256 x i1> <mask>, i32 <vector_length>)
18829
+
18830
+ Overview:
18831
+ """""""""
18832
+
18833
+ Predicated floating-point negation of a vector of floating-point values.
18834
+
18835
+
18836
+ Arguments:
18837
+ """"""""""
18838
+
18839
+ The first operand and the result have the same vector of floating-point type.
18840
+ The second operand is the vector mask and has the same number of elements as the
18841
+ result vector type. The third operand is the explicit vector length of the
18842
+ operation.
18843
+
18844
+ Semantics:
18845
+ """"""""""
18846
+
18847
+ The '``llvm.vp.fneg``' intrinsic performs floating-point negation (:ref:`fneg <i_fneg>`)
18848
+ of the first vector operand on each enabled lane. The result on disabled lanes
18849
+ is undefined.
18850
+
18851
+ Examples:
18852
+ """""""""
18853
+
18854
+ .. code-block:: llvm
18855
+
18856
+ %r = call <4 x float> @llvm.vp.fneg.v4f32(<4 x float> %a, <4 x i1> %mask, i32 %evl)
18857
+ ;; For all lanes below %evl, %r is lane-wise equivalent to %also.r
18858
+
18859
+ %t = fneg <4 x float> %a
18860
+ %also.r = select <4 x i1> %mask, <4 x float> %t, <4 x float> undef
18861
+
18862
+
18815
18863
.. _int_vp_fma:
18816
18864
18817
18865
'``llvm.vp.fma.*``' Intrinsics
0 commit comments