Skip to content

Commit 86b0835

Browse files
authored
Merge pull request #5867 from MicrosoftDocs/main
4/10/2025 AM Publish
1 parent 34ae0a9 commit 86b0835

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed

docs/build/reference/oi-generate-intrinsic-functions.md

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ title: "/Oi (Generate Intrinsic Functions)"
44
ms.date: "11/04/2016"
55
f1_keywords: ["VC.Project.VCCLCompilerTool.EnableIntrinsicFunctions", "/oi", "VC.Project.VCCLWCECompilerTool.EnableIntrinsicFunctions"]
66
helpviewer_keywords: ["Oi compiler option [C++]", "intrinsic functions, generate", "/Oi compiler option [C++]", "-Oi compiler option [C++]", "generate intrinsic functions compiler option [C++]"]
7-
ms.assetid: fa4a3bf6-0ed8-481b-91c0-add7636132b4
87
---
98
# /Oi (Generate Intrinsic Functions)
109

@@ -18,17 +17,18 @@ Replaces some function calls with intrinsic or otherwise special forms of the fu
1817

1918
## Remarks
2019

21-
Programs that use intrinsic functions are faster because they do not have the overhead of function calls, but may be larger because of the additional code created.
20+
Programs that use intrinsic functions are faster because they don't have the overhead of function calls but may be larger because of the extra code created.
2221

23-
See [intrinsic](../../preprocessor/intrinsic.md) for more information on which functions have intrinsic forms.
22+
For more information about which functions have intrinsic forms, see [intrinsic](../../preprocessor/intrinsic.md).
2423

25-
**/Oi** is only a request to the compiler to replace some function calls with intrinsics; the compiler may call the function (and not replace the function call with an intrinsic) if it will result in better performance.
24+
**/Oi** is only a request to the compiler to replace some function calls with intrinsics. The compiler may call the function (and not replace the function call with an intrinsic) if it results in better performance.\
25+
**/Oi-** turns off this behavior, which may be useful if `/Oi` has been specified elsewhere and you want to override it.
2626

2727
**x86 Specific**
2828

29-
The intrinsic floating-point functions do not perform any special checks on input values and so work in restricted ranges of input, and have different exception handling and boundary conditions than the library routines with the same name. Using the true intrinsic forms implies loss of IEEE exception handling, and loss of `_matherr` and `errno` functionality; the latter implies loss of ANSI conformance. However, the intrinsic forms can considerably speed up floating-point-intensive programs, and for many programs, the conformance issues are of little practical value.
29+
The intrinsic floating-point functions don't perform any special checks on input values and so work in restricted ranges of input, and have different exception handling and boundary conditions than the library routines with the same name. Using the true intrinsic forms implies loss of IEEE exception handling, and loss of `_matherr` and `errno` functionality; the latter implies loss of ANSI conformance. However, the intrinsic forms can considerably speed up floating-point-intensive programs, and for many programs, the conformance issues are of little practical value.
3030

31-
You can use the [Za](za-ze-disable-language-extensions.md) compiler option to override generation of true intrinsic floating-point options. In this case, the functions are generated as library routines that pass arguments directly to the floating-point chip instead of pushing them onto the program stack.
31+
You can use the [`Za`](za-ze-disable-language-extensions.md) compiler option to override generation of true intrinsic floating-point options. In this case, the functions are generated as library routines that pass arguments directly to the floating-point chip instead of pushing them onto the program stack.
3232

3333
**END x86 Specific**
3434

@@ -37,9 +37,7 @@ You also use [intrinsic](../../preprocessor/intrinsic.md) to create intrinsic fu
3737
### To set this compiler option in the Visual Studio development environment
3838

3939
1. Open the project's **Property Pages** dialog box. For details, see [Set C++ compiler and build properties in Visual Studio](../working-with-project-properties.md).
40-
4140
1. Select the **Configuration Properties** > **C/C++** > **Optimization** property page.
42-
4341
1. Modify the **Enable Intrinsic Functions** property.
4442

4543
### To set this compiler option programmatically
@@ -48,7 +46,7 @@ You also use [intrinsic](../../preprocessor/intrinsic.md) to create intrinsic fu
4846

4947
## See also
5048

51-
[/O Options (Optimize Code)](o-options-optimize-code.md)<br/>
52-
[MSVC Compiler Options](compiler-options.md)<br/>
53-
[MSVC Compiler Command-Line Syntax](compiler-command-line-syntax.md)<br/>
49+
[/O Options (Optimize Code)](o-options-optimize-code.md)\
50+
[MSVC Compiler Options](compiler-options.md)\
51+
[MSVC Compiler Command-Line Syntax](compiler-command-line-syntax.md)\
5452
[Compiler Intrinsics](../../intrinsics/compiler-intrinsics.md)

0 commit comments

Comments
 (0)