@@ -18644,7 +18644,7 @@ operation.
18644
18644
Semantics:
18645
18645
""""""""""
18646
18646
18647
- The '``llvm.vp.fadd``' intrinsic performs floating-point addition (:ref:`add <i_fadd>`)
18647
+ The '``llvm.vp.fadd``' intrinsic performs floating-point addition (:ref:`fadd <i_fadd>`)
18648
18648
of the first and second vector operand on each enabled lane. The result on
18649
18649
disabled lanes is undefined. The operation is performed in the default
18650
18650
floating-point environment.
@@ -18693,7 +18693,7 @@ operation.
18693
18693
Semantics:
18694
18694
""""""""""
18695
18695
18696
- The '``llvm.vp.fsub``' intrinsic performs floating-point subtraction (:ref:`add <i_fsub>`)
18696
+ The '``llvm.vp.fsub``' intrinsic performs floating-point subtraction (:ref:`fsub <i_fsub>`)
18697
18697
of the first and second vector operand on each enabled lane. The result on
18698
18698
disabled lanes is undefined. The operation is performed in the default
18699
18699
floating-point environment.
@@ -18742,7 +18742,7 @@ operation.
18742
18742
Semantics:
18743
18743
""""""""""
18744
18744
18745
- The '``llvm.vp.fmul``' intrinsic performs floating-point multiplication (:ref:`add <i_fmul>`)
18745
+ The '``llvm.vp.fmul``' intrinsic performs floating-point multiplication (:ref:`fmul <i_fmul>`)
18746
18746
of the first and second vector operand on each enabled lane. The result on
18747
18747
disabled lanes is undefined. The operation is performed in the default
18748
18748
floating-point environment.
@@ -18791,7 +18791,7 @@ operation.
18791
18791
Semantics:
18792
18792
""""""""""
18793
18793
18794
- The '``llvm.vp.fdiv``' intrinsic performs floating-point division (:ref:`add <i_fdiv>`)
18794
+ The '``llvm.vp.fdiv``' intrinsic performs floating-point division (:ref:`fdiv <i_fdiv>`)
18795
18795
of the first and second vector operand on each enabled lane. The result on
18796
18796
disabled lanes is undefined. The operation is performed in the default
18797
18797
floating-point environment.
@@ -18840,7 +18840,7 @@ operation.
18840
18840
Semantics:
18841
18841
""""""""""
18842
18842
18843
- The '``llvm.vp.frem``' intrinsic performs floating-point remainder (:ref:`add <i_frem>`)
18843
+ The '``llvm.vp.frem``' intrinsic performs floating-point remainder (:ref:`frem <i_frem>`)
18844
18844
of the first and second vector operand on each enabled lane. The result on
18845
18845
disabled lanes is undefined. The operation is performed in the default
18846
18846
floating-point environment.
@@ -18857,6 +18857,54 @@ Examples:
18857
18857
%also.r = select <4 x i1> %mask, <4 x float> %t, <4 x float> undef
18858
18858
18859
18859
18860
+ .. _int_vp_fneg:
18861
+
18862
+ '``llvm.vp.fneg.*``' Intrinsics
18863
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
18864
+
18865
+ Syntax:
18866
+ """""""
18867
+ This is an overloaded intrinsic.
18868
+
18869
+ ::
18870
+
18871
+ declare <16 x float> @llvm.vp.fneg.v16f32 (<16 x float> <op>, <16 x i1> <mask>, i32 <vector_length>)
18872
+ 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>)
18873
+ declare <256 x double> @llvm.vp.fneg.v256f64 (<256 x double> <op>, <256 x i1> <mask>, i32 <vector_length>)
18874
+
18875
+ Overview:
18876
+ """""""""
18877
+
18878
+ Predicated floating-point negation of a vector of floating-point values.
18879
+
18880
+
18881
+ Arguments:
18882
+ """"""""""
18883
+
18884
+ The first operand and the result have the same vector of floating-point type.
18885
+ The second operand is the vector mask and has the same number of elements as the
18886
+ result vector type. The third operand is the explicit vector length of the
18887
+ operation.
18888
+
18889
+ Semantics:
18890
+ """"""""""
18891
+
18892
+ The '``llvm.vp.fneg``' intrinsic performs floating-point negation (:ref:`fneg <i_fneg>`)
18893
+ of the first vector operand on each enabled lane. The result on disabled lanes
18894
+ is undefined.
18895
+
18896
+ Examples:
18897
+ """""""""
18898
+
18899
+ .. code-block:: llvm
18900
+
18901
+ %r = call <4 x float> @llvm.vp.fneg.v4f32(<4 x float> %a, <4 x i1> %mask, i32 %evl)
18902
+ ;; For all lanes below %evl, %r is lane-wise equivalent to %also.r
18903
+
18904
+ %t = fneg <4 x float> %a
18905
+ %also.r = select <4 x i1> %mask, <4 x float> %t, <4 x float> undef
18906
+
18907
+
18860
18908
.. _int_vp_fma:
18861
18909
18862
18910
'``llvm.vp.fma.*``' Intrinsics
0 commit comments