From 777d33e3b78011f4f49189a4eeb5268152a897b4 Mon Sep 17 00:00:00 2001
From: Dan Gohman This is an overloaded intrinsic. You can use llvm.sqrt on any
-floating point type. Not all targets support all types however.
+floating point or vector of floating point type. Not all targets support all
+types however.
The 'llvm.sqrt' intrinsics return the sqrt of the specified operand,
-returning the same value as the libm 'sqrt' function would. Unlike
+returning the same value as the libm 'sqrt' functions would. Unlike
sqrt in libm, however, llvm.sqrt has undefined behavior for
negative numbers (which allows for better optimization).
This is an overloaded intrinsic. You can use llvm.powi on any
-floating point type. Not all targets support all types however.
+floating point or vector of floating point type. Not all targets support all
+types however.
The 'llvm.powi.*' intrinsics return the first operand raised to the
specified (positive or negative) power. The order of evaluation of
-multiplications is not defined.
+multiplications is not defined. When a vector of floating point type is
+used, the second argument remains a scalar integer value.
Syntax:
declare float @llvm.sqrt.f32(float %Val)
declare double @llvm.sqrt.f64(double %Val)
@@ -4505,7 +4509,7 @@ floating point type. Not all targets support all types however.
Syntax:
declare float @llvm.powi.f32(float %Val, i32 %power)
declare double @llvm.powi.f64(double %Val, i32 %power)
@@ -4547,7 +4552,8 @@ floating point type. Not all targets support all types however.
Arguments:
@@ -4564,6 +4570,132 @@ This function returns the first value raised to the second power with an
unspecified sequence of rounding operations.
This is an overloaded intrinsic. You can use llvm.sin on any +floating point or vector of floating point type. Not all targets support all +types however. +
+ declare float @llvm.sin.f32(float %Val) + declare double @llvm.sin.f64(double %Val) + declare x86_fp80 @llvm.sin.f80(x86_fp80 %Val) + declare fp128 @llvm.sin.f128(fp128 %Val) + declare ppc_fp128 @llvm.sin.ppcf128(ppc_fp128 %Val) ++ +
+The 'llvm.sin.*' intrinsics return the sine of the operand. +
+ ++The argument and return value are floating point numbers of the same type. +
+ ++This function returns the sine of the specified operand, returning the +same values as the libm sin functions would, and handles error +conditions in the same way, unless the --enable-unsafe-fp-math is enabled +during code generation, in which case the result may have different +precision and if any errors occur the behavior is undefined.
+This is an overloaded intrinsic. You can use llvm.cos on any +floating point or vector of floating point type. Not all targets support all +types however. +
+ declare float @llvm.cos.f32(float %Val) + declare double @llvm.cos.f64(double %Val) + declare x86_fp80 @llvm.cos.f80(x86_fp80 %Val) + declare fp128 @llvm.cos.f128(fp128 %Val) + declare ppc_fp128 @llvm.cos.ppcf128(ppc_fp128 %Val) ++ +
+The 'llvm.cos.*' intrinsics return the cosine of the operand. +
+ ++The argument and return value are floating point numbers of the same type. +
+ ++This function returns the cosine of the specified operand, returning the +same values as the libm cos functions would, and handles error +conditions in the same way, unless the --enable-unsafe-fp-math is enabled +during code generation, in which case the result may have different +precision and if any errors occur the behavior is undefined.
+This is an overloaded intrinsic. You can use llvm.pow on any +floating point or vector of floating point type. Not all targets support all +types however. +
+ declare float @llvm.pow.f32(float %Val, float %Power) + declare double @llvm.pow.f64(double %Val, double %Power) + declare x86_fp80 @llvm.pow.f80(x86_fp80 %Val, x86_fp80 %Power) + declare fp128 @llvm.pow.f128(fp128 %Val, fp128 %Power) + declare ppc_fp128 @llvm.pow.ppcf128(ppc_fp128 %Val, ppc_fp128 Power) ++ +
+The 'llvm.pow.*' intrinsics return the first operand raised to the +specified (positive or negative) power. +
+ ++The second argument is a floating point power, and the first is a value to +raise to that power. +
+ ++This function returns the first value raised to the second power, +returning the +same values as the libm pow functions would, and handles error +conditions in the same way, unless the --enable-unsafe-fp-math is enabled +during code generation, in which case the result may have different +precision and if any errors occur the behavior is undefined.
+