Float Conversion

Generated from include/loongson-sxintrin.h. This page contains 32 intrinsics.

__m128i __lsx_vfceil_d (__m128d a)

Synopsis

__m128i __lsx_vfceil_d (__m128d a)
#include <loongson-sxintrin.h>
Instruction: vfceil.d
Builtin: __builtin_lsx_vfceil_d
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1158

Description

Round toward positive infinity and convert lane-wise for 2 x fp64 lanes.

Operation

dst.i64[0] = integer_convert(a.fp64[0], rounding=toward_positive_infinity);
dst.i64[1] = integer_convert(a.fp64[1], rounding=toward_positive_infinity);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 4 2

Header Mapping

return (__m128i)__builtin_lsx_vfceil_d((v2f64)a);

__m128i __lsx_vfceil_w (__m128 a)

Synopsis

__m128i __lsx_vfceil_w (__m128 a)
#include <loongson-sxintrin.h>
Instruction: vfceil.w
Builtin: __builtin_lsx_vfceil_w
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1151

Description

Round toward positive infinity and convert lane-wise for 4 x fp32 lanes.

Operation

dst.i32[0] = integer_convert(a.fp32[0], rounding=toward_positive_infinity);
dst.i32[1] = integer_convert(a.fp32[1], rounding=toward_positive_infinity);
dst.i32[2] = integer_convert(a.fp32[2], rounding=toward_positive_infinity);
dst.i32[3] = integer_convert(a.fp32[3], rounding=toward_positive_infinity);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 4 2

Header Mapping

return (__m128i)__builtin_lsx_vfceil_w((v4f32)a);

__m128i __lsx_vfceildo_w (__m128d a, __m128d b)

Synopsis

__m128i __lsx_vfceildo_w (__m128d a, __m128d b)
#include <loongson-sxintrin.h>
Instruction: vfceildo.w
Builtin: __builtin_lsx_vfceildo_w
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1200

Description

Round toward positive infinity and convert lane-wise for 4 x fp32 lanes.

Operation

dst.i32[0] = integer_convert(a.fp32[0], rounding=toward_positive_infinity);
dst.i32[1] = integer_convert(a.fp32[1], rounding=toward_positive_infinity);
dst.i32[2] = integer_convert(a.fp32[2], rounding=toward_positive_infinity);
dst.i32[3] = integer_convert(a.fp32[3], rounding=toward_positive_infinity);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 5 1

Header Mapping

return (__m128i)__builtin_lsx_vfceildo_w((v2f64)a, (v2f64)b);

__m128i __lsx_vfceilupl_d (__m128 a)

Synopsis

__m128i __lsx_vfceilupl_d (__m128 a)
#include <loongson-sxintrin.h>
Instruction: vfceilupl.d
Builtin: __builtin_lsx_vfceilupl_d
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1263

Description

Round toward positive infinity and convert lane-wise for 2 x fp64 lanes.

Operation

dst.i64[0] = integer_convert(a.fp64[0], rounding=toward_positive_infinity);
dst.i64[1] = integer_convert(a.fp64[1], rounding=toward_positive_infinity);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 5 1

Header Mapping

return (__m128i)__builtin_lsx_vfceilupl_d((v4f32)a);

__m128i __lsx_vfceilupr_d (__m128 a)

Synopsis

__m128i __lsx_vfceilupr_d (__m128 a)
#include <loongson-sxintrin.h>
Instruction: vfceilupr.d
Builtin: __builtin_lsx_vfceilupr_d
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1270

Description

Round toward positive infinity and convert lane-wise for 2 x fp64 lanes.

Operation

dst.i64[0] = integer_convert(a.fp64[0], rounding=toward_positive_infinity);
dst.i64[1] = integer_convert(a.fp64[1], rounding=toward_positive_infinity);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 5 1

Header Mapping

return (__m128i)__builtin_lsx_vfceilupr_d((v4f32)a);

__m128 __lsx_vffintdo_w (__m128i a, __m128i b)

Synopsis

__m128 __lsx_vffintdo_w (__m128i a, __m128i b)
#include <loongson-sxintrin.h>
Instruction: vffintdo.w
Builtin: __builtin_lsx_vffintdo_w
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1186

Description

Convert integer to floating point lane-wise for 4 x fp32 lanes.

Operation

dst.fp32[0] = float_convert(a.i32[0]);
dst.fp32[1] = float_convert(a.i32[1]);
dst.fp32[2] = float_convert(a.i32[2]);
dst.fp32[3] = float_convert(a.i32[3]);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 5 1

Header Mapping

return (__m128)__builtin_lsx_vffintdo_w((v2i64)a, (v2i64)b);

__m128d __lsx_vffintupl_d (__m128i a)

Synopsis

__m128d __lsx_vffintupl_d (__m128i a)
#include <loongson-sxintrin.h>
Instruction: vffintupl.d
Builtin: __builtin_lsx_vffintupl_d
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1235

Description

Convert integer to floating point lane-wise for 2 x fp64 lanes.

Operation

dst.fp64[0] = float_convert(a.i64[0]);
dst.fp64[1] = float_convert(a.i64[1]);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 5 1

Header Mapping

return (__m128d)__builtin_lsx_vffintupl_d((v4i32)a);

__m128d __lsx_vffintupr_d (__m128i a)

Synopsis

__m128d __lsx_vffintupr_d (__m128i a)
#include <loongson-sxintrin.h>
Instruction: vffintupr.d
Builtin: __builtin_lsx_vffintupr_d
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1242

Description

Convert integer to floating point lane-wise for 2 x fp64 lanes.

Operation

dst.fp64[0] = float_convert(a.i64[0]);
dst.fp64[1] = float_convert(a.i64[1]);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 5 1

Header Mapping

return (__m128d)__builtin_lsx_vffintupr_d((v4i32)a);

__m128i __lsx_vffloor_d (__m128d a)

Synopsis

__m128i __lsx_vffloor_d (__m128d a)
#include <loongson-sxintrin.h>
Instruction: vffloor.d
Builtin: __builtin_lsx_vffloor_d
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1172

Description

Round toward negative infinity and convert lane-wise for 2 x fp64 lanes.

Operation

dst.i64[0] = integer_convert(a.fp64[0], rounding=toward_negative_infinity);
dst.i64[1] = integer_convert(a.fp64[1], rounding=toward_negative_infinity);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 4 2

Header Mapping

return (__m128i)__builtin_lsx_vffloor_d((v2f64)a);

__m128i __lsx_vffloor_w (__m128 a)

Synopsis

__m128i __lsx_vffloor_w (__m128 a)
#include <loongson-sxintrin.h>
Instruction: vffloor.w
Builtin: __builtin_lsx_vffloor_w
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1165

Description

Round toward negative infinity and convert lane-wise for 4 x fp32 lanes.

Operation

dst.i32[0] = integer_convert(a.fp32[0], rounding=toward_negative_infinity);
dst.i32[1] = integer_convert(a.fp32[1], rounding=toward_negative_infinity);
dst.i32[2] = integer_convert(a.fp32[2], rounding=toward_negative_infinity);
dst.i32[3] = integer_convert(a.fp32[3], rounding=toward_negative_infinity);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 4 2

Header Mapping

return (__m128i)__builtin_lsx_vffloor_w((v4f32)a);

__m128i __lsx_vffloordo_w (__m128d a, __m128d b)

Synopsis

__m128i __lsx_vffloordo_w (__m128d a, __m128d b)
#include <loongson-sxintrin.h>
Instruction: vffloordo.w
Builtin: __builtin_lsx_vffloordo_w
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1207

Description

Round toward negative infinity and convert lane-wise for 4 x fp32 lanes.

Operation

dst.i32[0] = integer_convert(a.fp32[0], rounding=toward_negative_infinity);
dst.i32[1] = integer_convert(a.fp32[1], rounding=toward_negative_infinity);
dst.i32[2] = integer_convert(a.fp32[2], rounding=toward_negative_infinity);
dst.i32[3] = integer_convert(a.fp32[3], rounding=toward_negative_infinity);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 5 1

Header Mapping

return (__m128i)__builtin_lsx_vffloordo_w((v2f64)a, (v2f64)b);

__m128i __lsx_vffloorupl_d (__m128 a)

Synopsis

__m128i __lsx_vffloorupl_d (__m128 a)
#include <loongson-sxintrin.h>
Instruction: vffloorupl.d
Builtin: __builtin_lsx_vffloorupl_d
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1277

Description

Round toward negative infinity and convert lane-wise for 2 x fp64 lanes.

Operation

dst.i64[0] = integer_convert(a.fp64[0], rounding=toward_negative_infinity);
dst.i64[1] = integer_convert(a.fp64[1], rounding=toward_negative_infinity);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 5 1

Header Mapping

return (__m128i)__builtin_lsx_vffloorupl_d((v4f32)a);

__m128i __lsx_vffloorupr_d (__m128 a)

Synopsis

__m128i __lsx_vffloorupr_d (__m128 a)
#include <loongson-sxintrin.h>
Instruction: vffloorupr.d
Builtin: __builtin_lsx_vffloorupr_d
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1284

Description

Round toward negative infinity and convert lane-wise for 2 x fp64 lanes.

Operation

dst.i64[0] = integer_convert(a.fp64[0], rounding=toward_negative_infinity);
dst.i64[1] = integer_convert(a.fp64[1], rounding=toward_negative_infinity);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 5 1

Header Mapping

return (__m128i)__builtin_lsx_vffloorupr_d((v4f32)a);

__m128i __lsx_vfrint_rm00_d (__m128d a)

Synopsis

__m128i __lsx_vfrint_rm00_d (__m128d a)
#include <loongson-sxintrin.h>
Instruction: vfrint.rm00.d
Builtin: __builtin_lsx_vfrint_rm00_d
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1312

Description

Round to an integral floating-point value lane-wise for 2 x fp64 lanes.

Operation

dst.fp64[0] = round_to_integral_float(a.fp64[0], rounding_mode_from_suffix);
dst.fp64[1] = round_to_integral_float(a.fp64[1], rounding_mode_from_suffix);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 4 2

Header Mapping

return (__m128i)__builtin_lsx_vfrint_rm00_d((v2f64)a);

__m128i __lsx_vfrint_rm00_w (__m128 a)

Synopsis

__m128i __lsx_vfrint_rm00_w (__m128 a)
#include <loongson-sxintrin.h>
Instruction: vfrint.rm00.w
Builtin: __builtin_lsx_vfrint_rm00_w
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1305

Description

Round to an integral floating-point value lane-wise for 4 x fp32 lanes.

Operation

dst.fp32[0] = round_to_integral_float(a.fp32[0], rounding_mode_from_suffix);
dst.fp32[1] = round_to_integral_float(a.fp32[1], rounding_mode_from_suffix);
dst.fp32[2] = round_to_integral_float(a.fp32[2], rounding_mode_from_suffix);
dst.fp32[3] = round_to_integral_float(a.fp32[3], rounding_mode_from_suffix);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 4 2

Header Mapping

return (__m128i)__builtin_lsx_vfrint_rm00_w((v4f32)a);

__m128i __lsx_vfrint_rm01_d (__m128d a)

Synopsis

__m128i __lsx_vfrint_rm01_d (__m128d a)
#include <loongson-sxintrin.h>
Instruction: vfrint.rm01.d
Builtin: __builtin_lsx_vfrint_rm01_d
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1326

Description

Round to an integral floating-point value lane-wise for 2 x fp64 lanes.

Operation

dst.fp64[0] = round_to_integral_float(a.fp64[0], rounding_mode_from_suffix);
dst.fp64[1] = round_to_integral_float(a.fp64[1], rounding_mode_from_suffix);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 4 2

Header Mapping

return (__m128i)__builtin_lsx_vfrint_rm01_d((v2f64)a);

__m128i __lsx_vfrint_rm01_w (__m128 a)

Synopsis

__m128i __lsx_vfrint_rm01_w (__m128 a)
#include <loongson-sxintrin.h>
Instruction: vfrint.rm01.w
Builtin: __builtin_lsx_vfrint_rm01_w
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1319

Description

Round to an integral floating-point value lane-wise for 4 x fp32 lanes.

Operation

dst.fp32[0] = round_to_integral_float(a.fp32[0], rounding_mode_from_suffix);
dst.fp32[1] = round_to_integral_float(a.fp32[1], rounding_mode_from_suffix);
dst.fp32[2] = round_to_integral_float(a.fp32[2], rounding_mode_from_suffix);
dst.fp32[3] = round_to_integral_float(a.fp32[3], rounding_mode_from_suffix);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 4 2

Header Mapping

return (__m128i)__builtin_lsx_vfrint_rm01_w((v4f32)a);

__m128i __lsx_vfrint_rm10_d (__m128d a)

Synopsis

__m128i __lsx_vfrint_rm10_d (__m128d a)
#include <loongson-sxintrin.h>
Instruction: vfrint.rm10.d
Builtin: __builtin_lsx_vfrint_rm10_d
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1340

Description

Round to an integral floating-point value lane-wise for 2 x fp64 lanes.

Operation

dst.fp64[0] = round_to_integral_float(a.fp64[0], rounding_mode_from_suffix);
dst.fp64[1] = round_to_integral_float(a.fp64[1], rounding_mode_from_suffix);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 4 2

Header Mapping

return (__m128i)__builtin_lsx_vfrint_rm10_d((v2f64)a);

__m128i __lsx_vfrint_rm10_w (__m128 a)

Synopsis

__m128i __lsx_vfrint_rm10_w (__m128 a)
#include <loongson-sxintrin.h>
Instruction: vfrint.rm10.w
Builtin: __builtin_lsx_vfrint_rm10_w
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1333

Description

Round to an integral floating-point value lane-wise for 4 x fp32 lanes.

Operation

dst.fp32[0] = round_to_integral_float(a.fp32[0], rounding_mode_from_suffix);
dst.fp32[1] = round_to_integral_float(a.fp32[1], rounding_mode_from_suffix);
dst.fp32[2] = round_to_integral_float(a.fp32[2], rounding_mode_from_suffix);
dst.fp32[3] = round_to_integral_float(a.fp32[3], rounding_mode_from_suffix);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 4 2

Header Mapping

return (__m128i)__builtin_lsx_vfrint_rm10_w((v4f32)a);

__m128i __lsx_vfrint_rm11_d (__m128d a)

Synopsis

__m128i __lsx_vfrint_rm11_d (__m128d a)
#include <loongson-sxintrin.h>
Instruction: vfrint.rm11.d
Builtin: __builtin_lsx_vfrint_rm11_d
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1354

Description

Round to an integral floating-point value lane-wise for 2 x fp64 lanes.

Operation

dst.fp64[0] = round_to_integral_float(a.fp64[0], rounding_mode_from_suffix);
dst.fp64[1] = round_to_integral_float(a.fp64[1], rounding_mode_from_suffix);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 4 2

Header Mapping

return (__m128i)__builtin_lsx_vfrint_rm11_d((v2f64)a);

__m128i __lsx_vfrint_rm11_w (__m128 a)

Synopsis

__m128i __lsx_vfrint_rm11_w (__m128 a)
#include <loongson-sxintrin.h>
Instruction: vfrint.rm11.w
Builtin: __builtin_lsx_vfrint_rm11_w
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1347

Description

Round to an integral floating-point value lane-wise for 4 x fp32 lanes.

Operation

dst.fp32[0] = round_to_integral_float(a.fp32[0], rounding_mode_from_suffix);
dst.fp32[1] = round_to_integral_float(a.fp32[1], rounding_mode_from_suffix);
dst.fp32[2] = round_to_integral_float(a.fp32[2], rounding_mode_from_suffix);
dst.fp32[3] = round_to_integral_float(a.fp32[3], rounding_mode_from_suffix);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 4 2

Header Mapping

return (__m128i)__builtin_lsx_vfrint_rm11_w((v4f32)a);

__m128i __lsx_vfround_d (__m128d a)

Synopsis

__m128i __lsx_vfround_d (__m128d a)
#include <loongson-sxintrin.h>
Instruction: vfround.d
Builtin: __builtin_lsx_vfround_d
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1144

Description

Round to nearest and convert lane-wise for 2 x fp64 lanes.

Operation

dst.i64[0] = integer_convert(a.fp64[0], rounding=nearest);
dst.i64[1] = integer_convert(a.fp64[1], rounding=nearest);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 4 2

Header Mapping

return (__m128i)__builtin_lsx_vfround_d((v2f64)a);

__m128i __lsx_vfround_w (__m128 a)

Synopsis

__m128i __lsx_vfround_w (__m128 a)
#include <loongson-sxintrin.h>
Instruction: vfround.w
Builtin: __builtin_lsx_vfround_w
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1137

Description

Round to nearest and convert lane-wise for 4 x fp32 lanes.

Operation

dst.i32[0] = integer_convert(a.fp32[0], rounding=nearest);
dst.i32[1] = integer_convert(a.fp32[1], rounding=nearest);
dst.i32[2] = integer_convert(a.fp32[2], rounding=nearest);
dst.i32[3] = integer_convert(a.fp32[3], rounding=nearest);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 4 2

Header Mapping

return (__m128i)__builtin_lsx_vfround_w((v4f32)a);

__m128i __lsx_vfrounddo_w (__m128d a, __m128d b)

Synopsis

__m128i __lsx_vfrounddo_w (__m128d a, __m128d b)
#include <loongson-sxintrin.h>
Instruction: vfrounddo.w
Builtin: __builtin_lsx_vfrounddo_w
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1214

Description

Round to nearest and convert lane-wise for 4 x fp32 lanes.

Operation

dst.i32[0] = integer_convert(a.fp32[0], rounding=nearest);
dst.i32[1] = integer_convert(a.fp32[1], rounding=nearest);
dst.i32[2] = integer_convert(a.fp32[2], rounding=nearest);
dst.i32[3] = integer_convert(a.fp32[3], rounding=nearest);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 5 1

Header Mapping

return (__m128i)__builtin_lsx_vfrounddo_w((v2f64)a, (v2f64)b);

__m128i __lsx_vfroundupl_d (__m128 a)

Synopsis

__m128i __lsx_vfroundupl_d (__m128 a)
#include <loongson-sxintrin.h>
Instruction: vfroundupl.d
Builtin: __builtin_lsx_vfroundupl_d
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1291

Description

Round to nearest and convert lane-wise for 2 x fp64 lanes.

Operation

dst.i64[0] = integer_convert(a.fp64[0], rounding=nearest);
dst.i64[1] = integer_convert(a.fp64[1], rounding=nearest);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 5 1

Header Mapping

return (__m128i)__builtin_lsx_vfroundupl_d((v4f32)a);

__m128i __lsx_vfroundupr_d (__m128 a)

Synopsis

__m128i __lsx_vfroundupr_d (__m128 a)
#include <loongson-sxintrin.h>
Instruction: vfroundupr.d
Builtin: __builtin_lsx_vfroundupr_d
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1298

Description

Round to nearest and convert lane-wise for 2 x fp64 lanes.

Operation

dst.i64[0] = integer_convert(a.fp64[0], rounding=nearest);
dst.i64[1] = integer_convert(a.fp64[1], rounding=nearest);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 5 1

Header Mapping

return (__m128i)__builtin_lsx_vfroundupr_d((v4f32)a);

__m128i __lsx_vftintdo_w (__m128d a, __m128d b)

Synopsis

__m128i __lsx_vftintdo_w (__m128d a, __m128d b)
#include <loongson-sxintrin.h>
Instruction: vftintdo.w
Builtin: __builtin_lsx_vftintdo_w
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1179

Description

Convert floating point to integer lane-wise for 4 x fp32 lanes.

Operation

dst.i32[0] = integer_convert(a.fp32[0], rounding=current_rounding_mode);
dst.i32[1] = integer_convert(a.fp32[1], rounding=current_rounding_mode);
dst.i32[2] = integer_convert(a.fp32[2], rounding=current_rounding_mode);
dst.i32[3] = integer_convert(a.fp32[3], rounding=current_rounding_mode);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 5 1

Header Mapping

return (__m128i)__builtin_lsx_vftintdo_w((v2f64)a, (v2f64)b);

__m128i __lsx_vftintupl_d (__m128 a)

Synopsis

__m128i __lsx_vftintupl_d (__m128 a)
#include <loongson-sxintrin.h>
Instruction: vftintupl.d
Builtin: __builtin_lsx_vftintupl_d
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1221

Description

Convert floating point to integer lane-wise for 2 x fp64 lanes.

Operation

dst.i64[0] = integer_convert(a.fp64[0], rounding=current_rounding_mode);
dst.i64[1] = integer_convert(a.fp64[1], rounding=current_rounding_mode);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 5 1

Header Mapping

return (__m128i)__builtin_lsx_vftintupl_d((v4f32)a);

__m128i __lsx_vftintupr_d (__m128 a)

Synopsis

__m128i __lsx_vftintupr_d (__m128 a)
#include <loongson-sxintrin.h>
Instruction: vftintupr.d
Builtin: __builtin_lsx_vftintupr_d
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1228

Description

Convert floating point to integer lane-wise for 2 x fp64 lanes.

Operation

dst.i64[0] = integer_convert(a.fp64[0], rounding=current_rounding_mode);
dst.i64[1] = integer_convert(a.fp64[1], rounding=current_rounding_mode);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 5 1

Header Mapping

return (__m128i)__builtin_lsx_vftintupr_d((v4f32)a);

__m128i __lsx_vftruncdo_w (__m128d a, __m128d b)

Synopsis

__m128i __lsx_vftruncdo_w (__m128d a, __m128d b)
#include <loongson-sxintrin.h>
Instruction: vftruncdo.w
Builtin: __builtin_lsx_vftruncdo_w
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1193

Description

Truncate floating point to integer lane-wise for 4 x fp32 lanes.

Operation

dst.i32[0] = integer_convert(a.fp32[0], rounding=toward_zero);
dst.i32[1] = integer_convert(a.fp32[1], rounding=toward_zero);
dst.i32[2] = integer_convert(a.fp32[2], rounding=toward_zero);
dst.i32[3] = integer_convert(a.fp32[3], rounding=toward_zero);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 5 1

Header Mapping

return (__m128i)__builtin_lsx_vftruncdo_w((v2f64)a, (v2f64)b);

__m128i __lsx_vftruncupl_d (__m128 a)

Synopsis

__m128i __lsx_vftruncupl_d (__m128 a)
#include <loongson-sxintrin.h>
Instruction: vftruncupl.d
Builtin: __builtin_lsx_vftruncupl_d
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1249

Description

Truncate floating point to integer lane-wise for 2 x fp64 lanes.

Operation

dst.i64[0] = integer_convert(a.fp64[0], rounding=toward_zero);
dst.i64[1] = integer_convert(a.fp64[1], rounding=toward_zero);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 5 1

Header Mapping

return (__m128i)__builtin_lsx_vftruncupl_d((v4f32)a);

__m128i __lsx_vftruncupr_d (__m128 a)

Synopsis

__m128i __lsx_vftruncupr_d (__m128 a)
#include <loongson-sxintrin.h>
Instruction: vftruncupr.d
Builtin: __builtin_lsx_vftruncupr_d
CPU Flags: __mips_loongson_sx
Kind: function
Source: include/loongson-sxintrin.h:1256

Description

Truncate floating point to integer lane-wise for 2 x fp64 lanes.

Operation

dst.i64[0] = integer_convert(a.fp64[0], rounding=toward_zero);
dst.i64[1] = integer_convert(a.fp64[1], rounding=toward_zero);

Latency and Throughput

CPU µarch Latency Throughput (IPC)
3A4000 GS464V 5 1

Header Mapping

return (__m128i)__builtin_lsx_vftruncupr_d((v4f32)a);