Intel® C++ Compiler Classic Developer Guide and Reference

ID 767249
Date 7/13/2023
Public
Document Table of Contents

Floating Point Rounding Intrinsics

These Intel® Streaming SIMD Extensions 4 (Intel® SSE4) rounding intrinsics cover scalar and packed single-precision and double-precision floating-point operands. The prototypes for these intrinsics are in the smmintrin.h file.

To use these intrinsics, include the immintrin.h file as follows:

#include <immintrin.h>

The floor and ceil intrinsics correspond to the definitions of floor and ceil in the ISO 9899:1999 standard for the C programming language.

Intrinsic Syntax

Operation

Corresponding
Intel® SSE4 Instruction

__m128d _mm_round_pd(__m128d s1, int iRoundMode)

__m128d _mm_floor_pd(__m128d s1)

__m128d _mm_ceil_pd(__m128d s1)

Packed double-precision float rounding

ROUNDPD

__m128 _mm_round_ps(__m128 s1, int iRoundMode)

__m128 _mm_floor_ps(__m128 s1)

__m128 _mm_ceil_ps(__m128 s1)

Packed single-precision float rounding

ROUNDPS

__m128d _mm_round_sd(__m128d dst, __m128d s1, int iRoundMode)

__m128d _mm_floor_sd(__m128d dst, __m128d s1)

__m128d _mm_ceil_sd(__m128d dst, __m128d s1)

Single double-precision float rounding

ROUNDSD

__m128 _mm_round_ss(__m128 dst, __m128d s1, int iRoundMode)

__m128 _mm_floor_ss(__m128d dst, __m128 s1)

__m128 _mm_ceil_ss(__m128d dst, __m128 s1)

Single single-precision float rounding

ROUNDSS