<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/clang/test/CodeGen/complex-math.c, branch users/nico/python-2</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[CLANG] Full support of complex multiplication and division. (#81514)</title>
<updated>2024-03-20T19:14:09+00:00</updated>
<author>
<name>Zahira Ammarguellat</name>
<email>zahira.ammarguellat@intel.com</email>
</author>
<published>2024-03-20T19:14:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d9c4c312d81b4a2059d0ca2bb454c3452e52042e'/>
<id>d9c4c312d81b4a2059d0ca2bb454c3452e52042e</id>
<content type='text'>
In clang there are two options `-f[no]cx-limited-range` and
`-f[no]cx-fortran-rules` that control the range of complex
multiplication and division. However, it is unclear how these options
interact with one another. For instance, what should happen when the
users compile with `-fcx-fortran-rules -fno-cx-limited-range` or
`-fcx-limited-range -fno-cx-fortran-rules`?

In this patch we are introducing a new option to solve the issue and
give a greater flexibility to the user to control the behavior of the
compiler when performing multiplication and division of complex
floating-point values.

`-fcomplex-arihmetic=[full|improved|promoted|basic]`

`full`: Implementation of complex division and multiplication using a
call to runtime library functions (generally the case, but the BE might
sometimes replace the library call if it knows enough about the
potential range of the inputs). Overflow and non-finite values are
handled by the library implementation. For the case of multiplication
overflow will occur in accordance with normal floating-point rules. This
is the default value.

`improved`: Implementation of complex division using the Smith algorithm
at source precision. Smith's algorithm for complex division. See SMITH,
R. L. Algorithm 116: Complex division. Commun. ACM 5, 8 (1962). This
value offers improved handling for overflow in intermediate
calculations, but overflow may occur. NaN and infinite values are not
handled in some cases.

`promoted`: Implementation of complex division using algebraic formulas
at higher precision. Overflow is handled. Non-finite values are handled
in some cases. If the target does not have native support for a higher
precision data type, the implementation for the complex operation using
the Smith algorithm will be used. Overflow may still occur in some
cases. NaN and infinite values are not handled.

`basic`: Implementation of complex division and multiplication using
algebraic formulas at source precision. No special handling to avoid
overflow. NaN and infinite values are not handled.

`fcx-limited-range` will alias `-fcomplex-arithmetic=basic`
`-fcx-fortran-rules` will alias `-fcomplex-arithmetic=improved`
`-fno-cx-limited-range` and `-fno-cx-fortran-rules` will alias
`-fcomplex-arithmetic=full`

The complex division and multiplication will be implemented as follows
depending on the option used.

&lt;html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
xmlns="http://www.w3.org/TR/REC-html40"&gt;

&lt;head&gt;

&lt;meta name=ProgId content=Word.Document&gt;
&lt;meta name=Generator content="Microsoft Word 15"&gt;
&lt;meta name=Originator content="Microsoft Word 15"&gt;
&lt;link rel=File-List

href="file:///C:/Users/zahiraam/AppData/Local/Temp/msohtmlclip1/01/clip_filelist.xml"&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:OfficeDocumentSettings&gt;
  &lt;o:AllowPNG/&gt;
 &lt;/o:OfficeDocumentSettings&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;link rel=themeData

href="file:///C:/Users/zahiraam/AppData/Local/Temp/msohtmlclip1/01/clip_themedata.thmx"&gt;
&lt;link rel=colorSchemeMapping

href="file:///C:/Users/zahiraam/AppData/Local/Temp/msohtmlclip1/01/clip_colorschememapping.xml"&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves/&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:EnableOpenTypeKerning/&gt;
   &lt;w:DontFlipMirrorIndents/&gt;
   &lt;w:OverrideTableStyleHps/&gt;
  &lt;/w:Compatibility&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val="Cambria Math"/&gt;
   &lt;m:brkBin m:val="before"/&gt;
   &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;
   &lt;m:smallFrac m:val="off"/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val="0"/&gt;
   &lt;m:rMargin m:val="0"/&gt;
   &lt;m:defJc m:val="centerGroup"/&gt;
   &lt;m:wrapIndent m:val="1440"/&gt;
   &lt;m:intLim m:val="subSup"/&gt;
   &lt;m:naryLim m:val="undOvr"/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false"
  DefSemiHidden="false" DefQFormat="false" DefPriority="99"
  LatentStyleCount="376"&gt;
&lt;w:LsdException Locked="false" Priority="0" QFormat="true"
Name="Normal"/&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading
1"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 9"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 5"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 6"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 7"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 8"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 9"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Normal Indent"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="footnote text"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="annotation text"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="header"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="footer"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index heading"/&gt;
  &lt;w:LsdException Locked="false" Priority="35" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="caption"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="table of figures"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="envelope address"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="envelope return"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="footnote reference"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="annotation reference"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="line number"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="page number"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="endnote reference"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="endnote text"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="table of authorities"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="macro"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="toa heading"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Bullet"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Number"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List 5"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Bullet 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Bullet 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Bullet 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Bullet 5"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Number 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Number 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Number 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Number 5"/&gt;
&lt;w:LsdException Locked="false" Priority="10" QFormat="true"
Name="Title"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Closing"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Signature"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="true"
   UnhideWhenUsed="true" Name="Default Paragraph Font"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text Indent"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Continue"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Continue 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Continue 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Continue 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Continue 5"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Message Header"/&gt;
&lt;w:LsdException Locked="false" Priority="11" QFormat="true"
Name="Subtitle"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Salutation"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Date"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text First Indent"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text First Indent 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Note Heading"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text Indent 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text Indent 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Block Text"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Hyperlink"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="FollowedHyperlink"/&gt;
&lt;w:LsdException Locked="false" Priority="22" QFormat="true"
Name="Strong"/&gt;
&lt;w:LsdException Locked="false" Priority="20" QFormat="true"
Name="Emphasis"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Document Map"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Plain Text"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="E-mail Signature"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Top of Form"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Bottom of Form"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Normal (Web)"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Acronym"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Address"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Cite"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Code"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Definition"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Keyboard"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Preformatted"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Sample"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Typewriter"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Variable"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Normal Table"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="annotation subject"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="No List"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Outline List 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Outline List 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Outline List 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Simple 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Simple 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Simple 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Classic 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Classic 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Classic 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Classic 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Colorful 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Colorful 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Colorful 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Columns 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Columns 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Columns 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Columns 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Columns 5"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 5"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 6"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 7"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 8"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 5"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 6"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 7"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 8"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table 3D effects 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table 3D effects 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table 3D effects 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Contemporary"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Elegant"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Professional"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Subtle 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Subtle 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Web 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Web 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Web 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Balloon Text"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="Table Grid"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Theme"/&gt;
&lt;w:LsdException Locked="false" SemiHidden="true" Name="Placeholder
Text"/&gt;
&lt;w:LsdException Locked="false" Priority="1" QFormat="true" Name="No
Spacing"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" Name="Light Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" Name="Light List"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" Name="Light Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" Name="Medium List 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" Name="Medium List 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" Name="Dark List"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" Name="Colorful List"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/&gt;
&lt;w:LsdException Locked="false" Priority="60" Name="Light Shading Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="61" Name="Light List Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="62" Name="Light Grid Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="63" Name="Medium Shading 1
Accent 1"/&gt;
&lt;w:LsdException Locked="false" Priority="64" Name="Medium Shading 2
Accent 1"/&gt;
&lt;w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent
1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" Name="Revision"/&gt;
  &lt;w:LsdException Locked="false" Priority="34" QFormat="true"
   Name="List Paragraph"/&gt;
&lt;w:LsdException Locked="false" Priority="29" QFormat="true"
Name="Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="30" QFormat="true"
   Name="Intense Quote"/&gt;
&lt;w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/&gt;
&lt;w:LsdException Locked="false" Priority="71" Name="Colorful Shading
Accent 1"/&gt;
&lt;w:LsdException Locked="false" Priority="72" Name="Colorful List Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="60" Name="Light Shading Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="61" Name="Light List Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="62" Name="Light Grid Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="63" Name="Medium Shading 1
Accent 2"/&gt;
&lt;w:LsdException Locked="false" Priority="64" Name="Medium Shading 2
Accent 2"/&gt;
&lt;w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/&gt;
&lt;w:LsdException Locked="false" Priority="71" Name="Colorful Shading
Accent 2"/&gt;
&lt;w:LsdException Locked="false" Priority="72" Name="Colorful List Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="60" Name="Light Shading Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="61" Name="Light List Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="62" Name="Light Grid Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="63" Name="Medium Shading 1
Accent 3"/&gt;
&lt;w:LsdException Locked="false" Priority="64" Name="Medium Shading 2
Accent 3"/&gt;
&lt;w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/&gt;
&lt;w:LsdException Locked="false" Priority="71" Name="Colorful Shading
Accent 3"/&gt;
&lt;w:LsdException Locked="false" Priority="72" Name="Colorful List Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="60" Name="Light Shading Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="61" Name="Light List Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="62" Name="Light Grid Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="63" Name="Medium Shading 1
Accent 4"/&gt;
&lt;w:LsdException Locked="false" Priority="64" Name="Medium Shading 2
Accent 4"/&gt;
&lt;w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/&gt;
&lt;w:LsdException Locked="false" Priority="71" Name="Colorful Shading
Accent 4"/&gt;
&lt;w:LsdException Locked="false" Priority="72" Name="Colorful List Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="60" Name="Light Shading Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="61" Name="Light List Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="62" Name="Light Grid Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="63" Name="Medium Shading 1
Accent 5"/&gt;
&lt;w:LsdException Locked="false" Priority="64" Name="Medium Shading 2
Accent 5"/&gt;
&lt;w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/&gt;
&lt;w:LsdException Locked="false" Priority="71" Name="Colorful Shading
Accent 5"/&gt;
&lt;w:LsdException Locked="false" Priority="72" Name="Colorful List Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="60" Name="Light Shading Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="61" Name="Light List Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="62" Name="Light Grid Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="63" Name="Medium Shading 1
Accent 6"/&gt;
&lt;w:LsdException Locked="false" Priority="64" Name="Medium Shading 2
Accent 6"/&gt;
&lt;w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/&gt;
&lt;w:LsdException Locked="false" Priority="71" Name="Colorful Shading
Accent 6"/&gt;
&lt;w:LsdException Locked="false" Priority="72" Name="Colorful List Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent
6"/&gt;
  &lt;w:LsdException Locked="false" Priority="19" QFormat="true"
   Name="Subtle Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="21" QFormat="true"
   Name="Intense Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="31" QFormat="true"
   Name="Subtle Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="32" QFormat="true"
   Name="Intense Reference"/&gt;
&lt;w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book
Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="37" SemiHidden="true"
   UnhideWhenUsed="true" Name="Bibliography"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/&gt;
  &lt;w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/&gt;
&lt;w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/&gt;
  &lt;w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/&gt;
&lt;w:LsdException Locked="false" Priority="51" Name="Grid Table 6
Colorful"/&gt;
&lt;w:LsdException Locked="false" Priority="52" Name="Grid Table 7
Colorful"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 1"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark
Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 2"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark
Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 3"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark
Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 4"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark
Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 5"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark
Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 6"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark
Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 6"/&gt;
&lt;w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/&gt;
  &lt;w:LsdException Locked="false" Priority="47" Name="List Table 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="48" Name="List Table 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="49" Name="List Table 4"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/&gt;
&lt;w:LsdException Locked="false" Priority="51" Name="List Table 6
Colorful"/&gt;
&lt;w:LsdException Locked="false" Priority="52" Name="List Table 7
Colorful"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 1"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark
Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 2"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark
Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 3"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark
Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 4"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark
Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 5"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark
Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 6"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark
Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 6"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Mention"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Smart Hyperlink"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Hashtag"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Unresolved Mention"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Smart Link"/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;style&gt;
&lt;!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:roman;
	mso-font-pitch:variable;
	mso-font-signature:-536869121 1107305727 33554432 0 415 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-469750017 -1040178053 9 0 511 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin-top:0in;
	margin-right:0in;
	margin-bottom:8.0pt;
	margin-left:0in;
	line-height:107%;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;
	mso-font-kerning:1.0pt;
	mso-ligatures:standardcontextual;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	font-family:"Calibri",sans-serif;
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
.MsoPapDefault
	{mso-style-type:export-only;
	margin-bottom:8.0pt;
	line-height:107%;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.WordSection1
	{page:WordSection1;}
--&gt;
&lt;/style&gt;
&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin-top:0in;
	mso-para-margin-right:0in;
	mso-para-margin-bottom:8.0pt;
	mso-para-margin-left:0in;
	line-height:107%;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;
	mso-font-kerning:1.0pt;
	mso-ligatures:standardcontextual;}
&lt;/style&gt;
&lt;![endif]--&gt;
&lt;/head&gt;

&lt;body lang=EN-US style='tab-interval:.5in;word-wrap:break-word'&gt;
&lt;!--StartFragment--&gt;


-fcomplex-arithmetic | div | mul
-- | -- | --
basic | algebraic form | algebraic form
improved | smith's algorithm | algebraic form
full | libcall | libcall + nan processing
promoted | algebraic form + higher precision | algebraic form



&lt;!--EndFragment--&gt;
&lt;/body&gt;

&lt;/html&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In clang there are two options `-f[no]cx-limited-range` and
`-f[no]cx-fortran-rules` that control the range of complex
multiplication and division. However, it is unclear how these options
interact with one another. For instance, what should happen when the
users compile with `-fcx-fortran-rules -fno-cx-limited-range` or
`-fcx-limited-range -fno-cx-fortran-rules`?

In this patch we are introducing a new option to solve the issue and
give a greater flexibility to the user to control the behavior of the
compiler when performing multiplication and division of complex
floating-point values.

`-fcomplex-arihmetic=[full|improved|promoted|basic]`

`full`: Implementation of complex division and multiplication using a
call to runtime library functions (generally the case, but the BE might
sometimes replace the library call if it knows enough about the
potential range of the inputs). Overflow and non-finite values are
handled by the library implementation. For the case of multiplication
overflow will occur in accordance with normal floating-point rules. This
is the default value.

`improved`: Implementation of complex division using the Smith algorithm
at source precision. Smith's algorithm for complex division. See SMITH,
R. L. Algorithm 116: Complex division. Commun. ACM 5, 8 (1962). This
value offers improved handling for overflow in intermediate
calculations, but overflow may occur. NaN and infinite values are not
handled in some cases.

`promoted`: Implementation of complex division using algebraic formulas
at higher precision. Overflow is handled. Non-finite values are handled
in some cases. If the target does not have native support for a higher
precision data type, the implementation for the complex operation using
the Smith algorithm will be used. Overflow may still occur in some
cases. NaN and infinite values are not handled.

`basic`: Implementation of complex division and multiplication using
algebraic formulas at source precision. No special handling to avoid
overflow. NaN and infinite values are not handled.

`fcx-limited-range` will alias `-fcomplex-arithmetic=basic`
`-fcx-fortran-rules` will alias `-fcomplex-arithmetic=improved`
`-fno-cx-limited-range` and `-fno-cx-fortran-rules` will alias
`-fcomplex-arithmetic=full`

The complex division and multiplication will be implemented as follows
depending on the option used.

&lt;html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
xmlns="http://www.w3.org/TR/REC-html40"&gt;

&lt;head&gt;

&lt;meta name=ProgId content=Word.Document&gt;
&lt;meta name=Generator content="Microsoft Word 15"&gt;
&lt;meta name=Originator content="Microsoft Word 15"&gt;
&lt;link rel=File-List

href="file:///C:/Users/zahiraam/AppData/Local/Temp/msohtmlclip1/01/clip_filelist.xml"&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:OfficeDocumentSettings&gt;
  &lt;o:AllowPNG/&gt;
 &lt;/o:OfficeDocumentSettings&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;link rel=themeData

href="file:///C:/Users/zahiraam/AppData/Local/Temp/msohtmlclip1/01/clip_themedata.thmx"&gt;
&lt;link rel=colorSchemeMapping

href="file:///C:/Users/zahiraam/AppData/Local/Temp/msohtmlclip1/01/clip_colorschememapping.xml"&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves/&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:EnableOpenTypeKerning/&gt;
   &lt;w:DontFlipMirrorIndents/&gt;
   &lt;w:OverrideTableStyleHps/&gt;
  &lt;/w:Compatibility&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val="Cambria Math"/&gt;
   &lt;m:brkBin m:val="before"/&gt;
   &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;
   &lt;m:smallFrac m:val="off"/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val="0"/&gt;
   &lt;m:rMargin m:val="0"/&gt;
   &lt;m:defJc m:val="centerGroup"/&gt;
   &lt;m:wrapIndent m:val="1440"/&gt;
   &lt;m:intLim m:val="subSup"/&gt;
   &lt;m:naryLim m:val="undOvr"/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false"
  DefSemiHidden="false" DefQFormat="false" DefPriority="99"
  LatentStyleCount="376"&gt;
&lt;w:LsdException Locked="false" Priority="0" QFormat="true"
Name="Normal"/&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading
1"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 9"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 5"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 6"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 7"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 8"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 9"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Normal Indent"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="footnote text"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="annotation text"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="header"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="footer"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index heading"/&gt;
  &lt;w:LsdException Locked="false" Priority="35" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="caption"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="table of figures"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="envelope address"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="envelope return"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="footnote reference"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="annotation reference"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="line number"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="page number"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="endnote reference"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="endnote text"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="table of authorities"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="macro"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="toa heading"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Bullet"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Number"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List 5"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Bullet 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Bullet 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Bullet 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Bullet 5"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Number 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Number 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Number 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Number 5"/&gt;
&lt;w:LsdException Locked="false" Priority="10" QFormat="true"
Name="Title"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Closing"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Signature"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="true"
   UnhideWhenUsed="true" Name="Default Paragraph Font"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text Indent"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Continue"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Continue 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Continue 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Continue 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Continue 5"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Message Header"/&gt;
&lt;w:LsdException Locked="false" Priority="11" QFormat="true"
Name="Subtitle"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Salutation"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Date"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text First Indent"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text First Indent 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Note Heading"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text Indent 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text Indent 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Block Text"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Hyperlink"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="FollowedHyperlink"/&gt;
&lt;w:LsdException Locked="false" Priority="22" QFormat="true"
Name="Strong"/&gt;
&lt;w:LsdException Locked="false" Priority="20" QFormat="true"
Name="Emphasis"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Document Map"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Plain Text"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="E-mail Signature"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Top of Form"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Bottom of Form"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Normal (Web)"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Acronym"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Address"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Cite"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Code"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Definition"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Keyboard"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Preformatted"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Sample"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Typewriter"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Variable"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Normal Table"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="annotation subject"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="No List"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Outline List 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Outline List 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Outline List 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Simple 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Simple 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Simple 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Classic 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Classic 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Classic 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Classic 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Colorful 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Colorful 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Colorful 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Columns 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Columns 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Columns 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Columns 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Columns 5"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 5"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 6"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 7"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 8"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 5"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 6"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 7"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 8"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table 3D effects 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table 3D effects 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table 3D effects 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Contemporary"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Elegant"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Professional"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Subtle 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Subtle 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Web 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Web 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Web 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Balloon Text"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="Table Grid"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Theme"/&gt;
&lt;w:LsdException Locked="false" SemiHidden="true" Name="Placeholder
Text"/&gt;
&lt;w:LsdException Locked="false" Priority="1" QFormat="true" Name="No
Spacing"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" Name="Light Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" Name="Light List"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" Name="Light Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" Name="Medium List 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" Name="Medium List 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" Name="Dark List"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" Name="Colorful List"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/&gt;
&lt;w:LsdException Locked="false" Priority="60" Name="Light Shading Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="61" Name="Light List Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="62" Name="Light Grid Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="63" Name="Medium Shading 1
Accent 1"/&gt;
&lt;w:LsdException Locked="false" Priority="64" Name="Medium Shading 2
Accent 1"/&gt;
&lt;w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent
1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" Name="Revision"/&gt;
  &lt;w:LsdException Locked="false" Priority="34" QFormat="true"
   Name="List Paragraph"/&gt;
&lt;w:LsdException Locked="false" Priority="29" QFormat="true"
Name="Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="30" QFormat="true"
   Name="Intense Quote"/&gt;
&lt;w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/&gt;
&lt;w:LsdException Locked="false" Priority="71" Name="Colorful Shading
Accent 1"/&gt;
&lt;w:LsdException Locked="false" Priority="72" Name="Colorful List Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="60" Name="Light Shading Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="61" Name="Light List Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="62" Name="Light Grid Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="63" Name="Medium Shading 1
Accent 2"/&gt;
&lt;w:LsdException Locked="false" Priority="64" Name="Medium Shading 2
Accent 2"/&gt;
&lt;w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/&gt;
&lt;w:LsdException Locked="false" Priority="71" Name="Colorful Shading
Accent 2"/&gt;
&lt;w:LsdException Locked="false" Priority="72" Name="Colorful List Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="60" Name="Light Shading Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="61" Name="Light List Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="62" Name="Light Grid Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="63" Name="Medium Shading 1
Accent 3"/&gt;
&lt;w:LsdException Locked="false" Priority="64" Name="Medium Shading 2
Accent 3"/&gt;
&lt;w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/&gt;
&lt;w:LsdException Locked="false" Priority="71" Name="Colorful Shading
Accent 3"/&gt;
&lt;w:LsdException Locked="false" Priority="72" Name="Colorful List Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="60" Name="Light Shading Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="61" Name="Light List Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="62" Name="Light Grid Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="63" Name="Medium Shading 1
Accent 4"/&gt;
&lt;w:LsdException Locked="false" Priority="64" Name="Medium Shading 2
Accent 4"/&gt;
&lt;w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/&gt;
&lt;w:LsdException Locked="false" Priority="71" Name="Colorful Shading
Accent 4"/&gt;
&lt;w:LsdException Locked="false" Priority="72" Name="Colorful List Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="60" Name="Light Shading Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="61" Name="Light List Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="62" Name="Light Grid Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="63" Name="Medium Shading 1
Accent 5"/&gt;
&lt;w:LsdException Locked="false" Priority="64" Name="Medium Shading 2
Accent 5"/&gt;
&lt;w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/&gt;
&lt;w:LsdException Locked="false" Priority="71" Name="Colorful Shading
Accent 5"/&gt;
&lt;w:LsdException Locked="false" Priority="72" Name="Colorful List Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="60" Name="Light Shading Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="61" Name="Light List Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="62" Name="Light Grid Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="63" Name="Medium Shading 1
Accent 6"/&gt;
&lt;w:LsdException Locked="false" Priority="64" Name="Medium Shading 2
Accent 6"/&gt;
&lt;w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/&gt;
&lt;w:LsdException Locked="false" Priority="71" Name="Colorful Shading
Accent 6"/&gt;
&lt;w:LsdException Locked="false" Priority="72" Name="Colorful List Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent
6"/&gt;
  &lt;w:LsdException Locked="false" Priority="19" QFormat="true"
   Name="Subtle Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="21" QFormat="true"
   Name="Intense Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="31" QFormat="true"
   Name="Subtle Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="32" QFormat="true"
   Name="Intense Reference"/&gt;
&lt;w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book
Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="37" SemiHidden="true"
   UnhideWhenUsed="true" Name="Bibliography"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/&gt;
  &lt;w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/&gt;
&lt;w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/&gt;
  &lt;w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/&gt;
&lt;w:LsdException Locked="false" Priority="51" Name="Grid Table 6
Colorful"/&gt;
&lt;w:LsdException Locked="false" Priority="52" Name="Grid Table 7
Colorful"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 1"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark
Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 2"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark
Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 3"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark
Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 4"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark
Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 5"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark
Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 6"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark
Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 6"/&gt;
&lt;w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/&gt;
  &lt;w:LsdException Locked="false" Priority="47" Name="List Table 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="48" Name="List Table 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="49" Name="List Table 4"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/&gt;
&lt;w:LsdException Locked="false" Priority="51" Name="List Table 6
Colorful"/&gt;
&lt;w:LsdException Locked="false" Priority="52" Name="List Table 7
Colorful"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 1"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent
1"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark
Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 2"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent
2"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark
Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 3"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent
3"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark
Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 4"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent
4"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark
Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 5"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent
5"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark
Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 6"/&gt;
&lt;w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent
6"/&gt;
&lt;w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark
Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 6"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Mention"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Smart Hyperlink"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Hashtag"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Unresolved Mention"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Smart Link"/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;style&gt;
&lt;!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:roman;
	mso-font-pitch:variable;
	mso-font-signature:-536869121 1107305727 33554432 0 415 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-469750017 -1040178053 9 0 511 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin-top:0in;
	margin-right:0in;
	margin-bottom:8.0pt;
	margin-left:0in;
	line-height:107%;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;
	mso-font-kerning:1.0pt;
	mso-ligatures:standardcontextual;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	font-family:"Calibri",sans-serif;
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
.MsoPapDefault
	{mso-style-type:export-only;
	margin-bottom:8.0pt;
	line-height:107%;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.WordSection1
	{page:WordSection1;}
--&gt;
&lt;/style&gt;
&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin-top:0in;
	mso-para-margin-right:0in;
	mso-para-margin-bottom:8.0pt;
	mso-para-margin-left:0in;
	line-height:107%;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;
	mso-font-kerning:1.0pt;
	mso-ligatures:standardcontextual;}
&lt;/style&gt;
&lt;![endif]--&gt;
&lt;/head&gt;

&lt;body lang=EN-US style='tab-interval:.5in;word-wrap:break-word'&gt;
&lt;!--StartFragment--&gt;


-fcomplex-arithmetic | div | mul
-- | -- | --
basic | algebraic form | algebraic form
improved | smith's algorithm | algebraic form
full | libcall | libcall + nan processing
promoted | algebraic form + higher precision | algebraic form



&lt;!--EndFragment--&gt;
&lt;/body&gt;

&lt;/html&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[clang] Add support for -fcx-limited-range, #pragma CX_LIMITED_RANGE and -fcx-fortran-rules.  (#70244)</title>
<updated>2023-12-11T15:03:27+00:00</updated>
<author>
<name>Zahira Ammarguellat</name>
<email>zahira.ammarguellat@intel.com</email>
</author>
<published>2023-12-11T15:03:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b40c53465650456bfd364c123b1001e025353a33'/>
<id>b40c53465650456bfd364c123b1001e025353a33</id>
<content type='text'>
This patch adds the #pragma CX_LIMITED_RANGE defined in the C
specification.
It also adds the options -f[no]cx-limited-range and
-f[no]cx-fortran-rules.
-fcx-limited-range enables algebraic formulas for complex multiplication
and division. This option is enabled with -ffast-math.
-fcx-fortran-rules enables algebraic formulas for complex multiplication
and enables Smith’s algorithm for complex division (SMITH, R. L.
Algorithm 116: Complex division. Commun. ACM 5, 8 (1962)).

---------

Signed-off-by: Med Ismail Bennani &lt;ismail@bennani.ma&gt;
Co-authored-by: Joseph Huber &lt;jhuber6@vols.utk.edu&gt;
Co-authored-by: Guray Ozen &lt;guray.ozen@gmail.com&gt;
Co-authored-by: Nishant Patel &lt;nishant.b.patel@intel.com&gt;
Co-authored-by: Jessica Clarke &lt;jrtc27@jrtc27.com&gt;
Co-authored-by: Petr Hosek &lt;phosek@google.com&gt;
Co-authored-by: Joseph Huber &lt;35342157+jhuber6@users.noreply.github.com&gt;
Co-authored-by: Craig Topper &lt;craig.topper@sifive.com&gt;
Co-authored-by: Alexander Yermolovich &lt;43973793+ayermolo@users.noreply.github.com&gt;
Co-authored-by: Usama Hameed &lt;u_hameed@apple.com&gt;
Co-authored-by: Philip Reames &lt;preames@rivosinc.com&gt;
Co-authored-by: Evgenii Kudriashov &lt;evgenii.kudriashov@intel.com&gt;
Co-authored-by: Fangrui Song &lt;i@maskray.me&gt;
Co-authored-by: Aart Bik &lt;39774503+aartbik@users.noreply.github.com&gt;
Co-authored-by: Valentin Clement &lt;clementval@gmail.com&gt;
Co-authored-by: Youngsuk Kim &lt;youngsuk.kim@hpe.com&gt;
Co-authored-by: Arthur Eubanks &lt;aeubanks@google.com&gt;
Co-authored-by: Jan Svoboda &lt;jan_svoboda@apple.com&gt;
Co-authored-by: Walter Erquinigo &lt;a20012251@gmail.com&gt;
Co-authored-by: Eric &lt;eric@efcs.ca&gt;
Co-authored-by: Fazlay Rabbi &lt;106703039+mdfazlay@users.noreply.github.com&gt;
Co-authored-by: Pete Lawrence &lt;plawrence@apple.com&gt;
Co-authored-by: Jonas Devlieghere &lt;jonas@devlieghere.com&gt;
Co-authored-by: Adrian Prantl &lt;aprantl@apple.com&gt;
Co-authored-by: Owen Pan &lt;owenpiano@gmail.com&gt;
Co-authored-by: LLVM GN Syncbot &lt;llvmgnsyncbot@gmail.com&gt;
Co-authored-by: Med Ismail Bennani &lt;ismail@bennani.ma&gt;
Co-authored-by: Congcong Cai &lt;congcongcai0907@163.com&gt;
Co-authored-by: Rik Huijzer &lt;github@huijzer.xyz&gt;
Co-authored-by: Wang Pengcheng &lt;wangpengcheng.pp@bytedance.com&gt;
Co-authored-by: Yuanfang Chen &lt;tabloid.adroit@gmail.com&gt;
Co-authored-by: Kazu Hirata &lt;kazu@google.com&gt;
Co-authored-by: Mehdi Amini &lt;joker.eph@gmail.com&gt;
Co-authored-by: Aiden Grossman &lt;agrossman154@yahoo.com&gt;
Co-authored-by: Rana Pratap Reddy &lt;109514914+ranapratap55@users.noreply.github.com&gt;
Co-authored-by: Yingwei Zheng &lt;dtcxzyw2333@gmail.com&gt;
Co-authored-by: Piotr Zegar &lt;me@piotrzegar.pl&gt;
Co-authored-by: KAWASHIMA Takahiro &lt;t-kawashima@fujitsu.com&gt;
Co-authored-by: Tobias Hieta &lt;tobias@hieta.se&gt;
Co-authored-by: Luke Lau &lt;luke@igalia.com&gt;
Co-authored-by: Shivam Gupta &lt;shivam98.tkg@gmail.com&gt;
Co-authored-by: cor3ntin &lt;corentinjabot@gmail.com&gt;
Co-authored-by: Yeting Kuo &lt;46629943+yetingk@users.noreply.github.com&gt;
Co-authored-by: Stanislav Mekhanoshin &lt;rampitec@users.noreply.github.com&gt;
Co-authored-by: David Spickett &lt;david.spickett@linaro.org&gt;
Co-authored-by: Matthew Devereau &lt;matthew.devereau@arm.com&gt;
Co-authored-by: Martin Storsjö &lt;martin@martin.st&gt;
Co-authored-by: Qiu Chaofan &lt;qiucofan@cn.ibm.com&gt;
Co-authored-by: Pierre van Houtryve &lt;pierre.vanhoutryve@amd.com&gt;
Co-authored-by: Mikael Holmen &lt;mikael.holmen@ericsson.com&gt;
Co-authored-by: Uday Bondhugula &lt;uday@polymagelabs.com&gt;
Co-authored-by: Nikita Popov &lt;npopov@redhat.com&gt;
Co-authored-by: Johannes Reifferscheid &lt;jreiffers@google.com&gt;
Co-authored-by: Benjamin Kramer &lt;benny.kra@googlemail.com&gt;
Co-authored-by: Oliver Stannard &lt;oliver.stannard@arm.com&gt;
Co-authored-by: Dmitry Vyukov &lt;dvyukov@google.com&gt;
Co-authored-by: Benjamin Maxwell &lt;benjamin.maxwell@arm.com&gt;
Co-authored-by: Piotr Sobczak &lt;piotr.sobczak@amd.com&gt;
Co-authored-by: Simon Pilgrim &lt;llvm-dev@redking.me.uk&gt;
Co-authored-by: Timm Bäder &lt;tbaeder@redhat.com&gt;
Co-authored-by: Sunil Kuravinakop &lt;koops@hpe.com&gt;
Co-authored-by: zhongyunde 00443407 &lt;zhongyunde@huawei.com&gt;
Co-authored-by: Christudasan Devadasan &lt;Christudasan.Devadasan@amd.com&gt;
Co-authored-by: bjacob &lt;jacob.benoit.1@gmail.com&gt;
Co-authored-by: Weining Lu &lt;luweining@loongson.cn&gt;
Co-authored-by: Andrzej Warzyński &lt;andrzej.warzynski@arm.com&gt;
Co-authored-by: Jay Foad &lt;jay.foad@amd.com&gt;
Co-authored-by: Markus Mützel &lt;markus.muetzel@gmx.de&gt;
Co-authored-by: Erik Jonsson &lt;erik.j.jonsson@ericsson.com&gt;
Co-authored-by: Pete Steinfeld &lt;47540744+psteinfeld@users.noreply.github.com&gt;
Co-authored-by: Alexey Bataev &lt;a.bataev@outlook.com&gt;
Co-authored-by: Louis Dionne &lt;ldionne.2@gmail.com&gt;
Co-authored-by: Qizhi Hu &lt;836744285@qq.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds the #pragma CX_LIMITED_RANGE defined in the C
specification.
It also adds the options -f[no]cx-limited-range and
-f[no]cx-fortran-rules.
-fcx-limited-range enables algebraic formulas for complex multiplication
and division. This option is enabled with -ffast-math.
-fcx-fortran-rules enables algebraic formulas for complex multiplication
and enables Smith’s algorithm for complex division (SMITH, R. L.
Algorithm 116: Complex division. Commun. ACM 5, 8 (1962)).

---------

Signed-off-by: Med Ismail Bennani &lt;ismail@bennani.ma&gt;
Co-authored-by: Joseph Huber &lt;jhuber6@vols.utk.edu&gt;
Co-authored-by: Guray Ozen &lt;guray.ozen@gmail.com&gt;
Co-authored-by: Nishant Patel &lt;nishant.b.patel@intel.com&gt;
Co-authored-by: Jessica Clarke &lt;jrtc27@jrtc27.com&gt;
Co-authored-by: Petr Hosek &lt;phosek@google.com&gt;
Co-authored-by: Joseph Huber &lt;35342157+jhuber6@users.noreply.github.com&gt;
Co-authored-by: Craig Topper &lt;craig.topper@sifive.com&gt;
Co-authored-by: Alexander Yermolovich &lt;43973793+ayermolo@users.noreply.github.com&gt;
Co-authored-by: Usama Hameed &lt;u_hameed@apple.com&gt;
Co-authored-by: Philip Reames &lt;preames@rivosinc.com&gt;
Co-authored-by: Evgenii Kudriashov &lt;evgenii.kudriashov@intel.com&gt;
Co-authored-by: Fangrui Song &lt;i@maskray.me&gt;
Co-authored-by: Aart Bik &lt;39774503+aartbik@users.noreply.github.com&gt;
Co-authored-by: Valentin Clement &lt;clementval@gmail.com&gt;
Co-authored-by: Youngsuk Kim &lt;youngsuk.kim@hpe.com&gt;
Co-authored-by: Arthur Eubanks &lt;aeubanks@google.com&gt;
Co-authored-by: Jan Svoboda &lt;jan_svoboda@apple.com&gt;
Co-authored-by: Walter Erquinigo &lt;a20012251@gmail.com&gt;
Co-authored-by: Eric &lt;eric@efcs.ca&gt;
Co-authored-by: Fazlay Rabbi &lt;106703039+mdfazlay@users.noreply.github.com&gt;
Co-authored-by: Pete Lawrence &lt;plawrence@apple.com&gt;
Co-authored-by: Jonas Devlieghere &lt;jonas@devlieghere.com&gt;
Co-authored-by: Adrian Prantl &lt;aprantl@apple.com&gt;
Co-authored-by: Owen Pan &lt;owenpiano@gmail.com&gt;
Co-authored-by: LLVM GN Syncbot &lt;llvmgnsyncbot@gmail.com&gt;
Co-authored-by: Med Ismail Bennani &lt;ismail@bennani.ma&gt;
Co-authored-by: Congcong Cai &lt;congcongcai0907@163.com&gt;
Co-authored-by: Rik Huijzer &lt;github@huijzer.xyz&gt;
Co-authored-by: Wang Pengcheng &lt;wangpengcheng.pp@bytedance.com&gt;
Co-authored-by: Yuanfang Chen &lt;tabloid.adroit@gmail.com&gt;
Co-authored-by: Kazu Hirata &lt;kazu@google.com&gt;
Co-authored-by: Mehdi Amini &lt;joker.eph@gmail.com&gt;
Co-authored-by: Aiden Grossman &lt;agrossman154@yahoo.com&gt;
Co-authored-by: Rana Pratap Reddy &lt;109514914+ranapratap55@users.noreply.github.com&gt;
Co-authored-by: Yingwei Zheng &lt;dtcxzyw2333@gmail.com&gt;
Co-authored-by: Piotr Zegar &lt;me@piotrzegar.pl&gt;
Co-authored-by: KAWASHIMA Takahiro &lt;t-kawashima@fujitsu.com&gt;
Co-authored-by: Tobias Hieta &lt;tobias@hieta.se&gt;
Co-authored-by: Luke Lau &lt;luke@igalia.com&gt;
Co-authored-by: Shivam Gupta &lt;shivam98.tkg@gmail.com&gt;
Co-authored-by: cor3ntin &lt;corentinjabot@gmail.com&gt;
Co-authored-by: Yeting Kuo &lt;46629943+yetingk@users.noreply.github.com&gt;
Co-authored-by: Stanislav Mekhanoshin &lt;rampitec@users.noreply.github.com&gt;
Co-authored-by: David Spickett &lt;david.spickett@linaro.org&gt;
Co-authored-by: Matthew Devereau &lt;matthew.devereau@arm.com&gt;
Co-authored-by: Martin Storsjö &lt;martin@martin.st&gt;
Co-authored-by: Qiu Chaofan &lt;qiucofan@cn.ibm.com&gt;
Co-authored-by: Pierre van Houtryve &lt;pierre.vanhoutryve@amd.com&gt;
Co-authored-by: Mikael Holmen &lt;mikael.holmen@ericsson.com&gt;
Co-authored-by: Uday Bondhugula &lt;uday@polymagelabs.com&gt;
Co-authored-by: Nikita Popov &lt;npopov@redhat.com&gt;
Co-authored-by: Johannes Reifferscheid &lt;jreiffers@google.com&gt;
Co-authored-by: Benjamin Kramer &lt;benny.kra@googlemail.com&gt;
Co-authored-by: Oliver Stannard &lt;oliver.stannard@arm.com&gt;
Co-authored-by: Dmitry Vyukov &lt;dvyukov@google.com&gt;
Co-authored-by: Benjamin Maxwell &lt;benjamin.maxwell@arm.com&gt;
Co-authored-by: Piotr Sobczak &lt;piotr.sobczak@amd.com&gt;
Co-authored-by: Simon Pilgrim &lt;llvm-dev@redking.me.uk&gt;
Co-authored-by: Timm Bäder &lt;tbaeder@redhat.com&gt;
Co-authored-by: Sunil Kuravinakop &lt;koops@hpe.com&gt;
Co-authored-by: zhongyunde 00443407 &lt;zhongyunde@huawei.com&gt;
Co-authored-by: Christudasan Devadasan &lt;Christudasan.Devadasan@amd.com&gt;
Co-authored-by: bjacob &lt;jacob.benoit.1@gmail.com&gt;
Co-authored-by: Weining Lu &lt;luweining@loongson.cn&gt;
Co-authored-by: Andrzej Warzyński &lt;andrzej.warzynski@arm.com&gt;
Co-authored-by: Jay Foad &lt;jay.foad@amd.com&gt;
Co-authored-by: Markus Mützel &lt;markus.muetzel@gmx.de&gt;
Co-authored-by: Erik Jonsson &lt;erik.j.jonsson@ericsson.com&gt;
Co-authored-by: Pete Steinfeld &lt;47540744+psteinfeld@users.noreply.github.com&gt;
Co-authored-by: Alexey Bataev &lt;a.bataev@outlook.com&gt;
Co-authored-by: Louis Dionne &lt;ldionne.2@gmail.com&gt;
Co-authored-by: Qizhi Hu &lt;836744285@qq.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[ARM] Fixing ABI mismatch for packed structs passed as function arguments</title>
<updated>2023-07-26T16:33:06+00:00</updated>
<author>
<name>Jirui Wu</name>
<email>jirui.wu@arm.com</email>
</author>
<published>2023-03-15T14:46:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c9de04ea64ed4e30d5bad1e6cdc2b3eeccdcd701'/>
<id>c9de04ea64ed4e30d5bad1e6cdc2b3eeccdcd701</id>
<content type='text'>
Previously when a packed struct, containing vector data types such as
uint16x8_t, is passed as a function argument, the alignment of the
struct used by the function caller and the alignment used by the callee
to load the argument from stack does not match.

This patch implements section 6.8.2, stage C.4 of the Procedure Call
Standard for the Arm 64-bit Architecture (AAPCS64): "If the argument is
an HFA, an HVA, a Quad-precision Floating-point or short vector type
then the NSAA is rounded up to the next multiple of 8 if its natural
alignment is ≤ 8 or the next multiple of 16 if its natural alignment
is ≥ 16." This ensures the alignments of the packed structs used as
function arguments are the same as described in the AAPCS64 for both
the caller and callee.

Reference:
AAPCS64 (https://github.com/ARM-software/abi-aa/blob/latest-release/aapcs64/aapcs64.rst)

Reviewed By: olista01, rjmccall, tmatheson

Differential Revision: https://reviews.llvm.org/D146242
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously when a packed struct, containing vector data types such as
uint16x8_t, is passed as a function argument, the alignment of the
struct used by the function caller and the alignment used by the callee
to load the argument from stack does not match.

This patch implements section 6.8.2, stage C.4 of the Procedure Call
Standard for the Arm 64-bit Architecture (AAPCS64): "If the argument is
an HFA, an HVA, a Quad-precision Floating-point or short vector type
then the NSAA is rounded up to the next multiple of 8 if its natural
alignment is ≤ 8 or the next multiple of 16 if its natural alignment
is ≥ 16." This ensures the alignments of the packed structs used as
function arguments are the same as described in the AAPCS64 for both
the caller and callee.

Reference:
AAPCS64 (https://github.com/ARM-software/abi-aa/blob/latest-release/aapcs64/aapcs64.rst)

Reviewed By: olista01, rjmccall, tmatheson

Differential Revision: https://reviews.llvm.org/D146242
</pre>
</div>
</content>
</entry>
<entry>
<title>clang: Emit nofpclass(nan inf) for -ffinite-math-only</title>
<updated>2023-03-15T05:13:08+00:00</updated>
<author>
<name>Matt Arsenault</name>
<email>Matthew.Arsenault@amd.com</email>
</author>
<published>2023-02-27T23:56:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=dd8181055494d8f973dfaaba282bb1ae6eab4d40'/>
<id>dd8181055494d8f973dfaaba282bb1ae6eab4d40</id>
<content type='text'>
Set this on any source level floating-point type argument,
return value, call return or outgoing parameter which is lowered
to a valid IR type for the attribute. Currently this isn't
applied to emitted intrinsics since those don't go through
ABI code.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Set this on any source level floating-point type argument,
return value, call return or outgoing parameter which is lowered
to a valid IR type for the attribute. Currently this isn't
applied to emitted intrinsics since those don't go through
ABI code.
</pre>
</div>
</content>
</entry>
<entry>
<title>[clang] use getCommonSugar in an assortment of places</title>
<updated>2022-09-16T14:36:00+00:00</updated>
<author>
<name>Matheus Izvekov</name>
<email>mizvekov@gmail.com</email>
</author>
<published>2021-10-10T13:28:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=67e22983115451ef5512ad2813dd337762c52da3'/>
<id>67e22983115451ef5512ad2813dd337762c52da3</id>
<content type='text'>
For this patch, a simple search was performed for patterns where there are
two types (usually an LHS and an RHS) which are structurally the same, and there
is some result type which is resolved as either one of them (typically LHS for
consistency).

We change those cases to resolve as the common sugared type between those two,
utilizing the new infrastructure created for this purpose.

Signed-off-by: Matheus Izvekov &lt;mizvekov@gmail.com&gt;

Differential Revision: https://reviews.llvm.org/D111509
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For this patch, a simple search was performed for patterns where there are
two types (usually an LHS and an RHS) which are structurally the same, and there
is some result type which is resolved as either one of them (typically LHS for
consistency).

We change those cases to resolve as the common sugared type between those two,
utilizing the new infrastructure created for this purpose.

Signed-off-by: Matheus Izvekov &lt;mizvekov@gmail.com&gt;

Differential Revision: https://reviews.llvm.org/D111509
</pre>
</div>
</content>
</entry>
<entry>
<title>[Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default</title>
<updated>2022-01-16T09:54:17+00:00</updated>
<author>
<name>hyeongyu kim</name>
<email>gusrb406@snu.ac.kr</email>
</author>
<published>2022-01-16T09:53:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1b1c8d83d3567a60280291c0adb95d1d60335509'/>
<id>1b1c8d83d3567a60280291c0adb95d1d60335509</id>
<content type='text'>
Turning on `enable_noundef_analysis` flag allows better codegen by removing freeze instructions.
I modified clang by renaming `enable_noundef_analysis` flag to `disable-noundef-analysis` and turning it off by default.

Test updates are made as a separate patch: D108453

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D105169
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Turning on `enable_noundef_analysis` flag allows better codegen by removing freeze instructions.
I modified clang by renaming `enable_noundef_analysis` flag to `disable-noundef-analysis` and turning it off by default.

Test updates are made as a separate patch: D108453

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D105169
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default"</title>
<updated>2021-11-08T17:15:55+00:00</updated>
<author>
<name>hyeongyu kim</name>
<email>gusrb406@snu.ac.kr</email>
</author>
<published>2021-11-08T17:09:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=fd9b099906c61e46574d1ea2d99b973321fe1d21'/>
<id>fd9b099906c61e46574d1ea2d99b973321fe1d21</id>
<content type='text'>
This reverts commit aacfbb953eb705af2ecfeb95a6262818fa85dd92.

Revert "Fix lit test failures in CodeGenCoroutines"

This reverts commit 63fff0f5bffe20fa2c84a45a41161afa0043cb34.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit aacfbb953eb705af2ecfeb95a6262818fa85dd92.

Revert "Fix lit test failures in CodeGenCoroutines"

This reverts commit 63fff0f5bffe20fa2c84a45a41161afa0043cb34.
</pre>
</div>
</content>
</entry>
<entry>
<title>[Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default</title>
<updated>2021-11-06T10:19:22+00:00</updated>
<author>
<name>hyeongyukim</name>
<email>gusrb406@snu.ac.kr</email>
</author>
<published>2021-10-15T10:26:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=aacfbb953eb705af2ecfeb95a6262818fa85dd92'/>
<id>aacfbb953eb705af2ecfeb95a6262818fa85dd92</id>
<content type='text'>
Turning on `enable_noundef_analysis` flag allows better codegen by removing freeze instructions.
I modified clang by renaming `enable_noundef_analysis` flag to `disable-noundef-analysis` and turning it off by default.

Test updates are made as a separate patch: D108453

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D105169

[Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default (2)

This patch updates test files after D105169.
Autogenerated test codes are changed by `utils/update_cc_test_checks.py,` and non-autogenerated test codes are changed as follows:

(1) I wrote a python script that (partially) updates the tests using regex: {F18594904} The script is not perfect, but I believe it gives hints about which patterns are updated to have `noundef` attached.

(2) The remaining tests are updated manually.

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D108453

Resolve lit failures in clang after 8ca4b3e's land

Fix lit test failures in clang-ppc* and clang-x64-windows-msvc

Fix missing failures in clang-ppc64be* and retry fixing clang-x64-windows-msvc

Fix internal_clone(aarch64) inline assembly
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Turning on `enable_noundef_analysis` flag allows better codegen by removing freeze instructions.
I modified clang by renaming `enable_noundef_analysis` flag to `disable-noundef-analysis` and turning it off by default.

Test updates are made as a separate patch: D108453

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D105169

[Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default (2)

This patch updates test files after D105169.
Autogenerated test codes are changed by `utils/update_cc_test_checks.py,` and non-autogenerated test codes are changed as follows:

(1) I wrote a python script that (partially) updates the tests using regex: {F18594904} The script is not perfect, but I believe it gives hints about which patterns are updated to have `noundef` attached.

(2) The remaining tests are updated manually.

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D108453

Resolve lit failures in clang after 8ca4b3e's land

Fix lit test failures in clang-ppc* and clang-x64-windows-msvc

Fix missing failures in clang-ppc64be* and retry fixing clang-x64-windows-msvc

Fix internal_clone(aarch64) inline assembly
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default"</title>
<updated>2021-11-06T06:39:19+00:00</updated>
<author>
<name>Juneyoung Lee</name>
<email>aqjune@gmail.com</email>
</author>
<published>2021-11-06T06:39:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=89ad2822affb7c120c52eddfa22d593af6e1a08a'/>
<id>89ad2822affb7c120c52eddfa22d593af6e1a08a</id>
<content type='text'>
This reverts commit 7584ef766a7219b6ee5a400637206d26e0fa98ac.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 7584ef766a7219b6ee5a400637206d26e0fa98ac.
</pre>
</div>
</content>
</entry>
<entry>
<title>[Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default</title>
<updated>2021-11-06T06:36:42+00:00</updated>
<author>
<name>Juneyoung Lee</name>
<email>aqjune@gmail.com</email>
</author>
<published>2021-11-06T06:34:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7584ef766a7219b6ee5a400637206d26e0fa98ac'/>
<id>7584ef766a7219b6ee5a400637206d26e0fa98ac</id>
<content type='text'>
Turning on `enable_noundef_analysis` flag allows better codegen by removing freeze instructions.
I modified clang by renaming `enable_noundef_analysis` flag to `disable-noundef-analysis` and turning it off by default.

Test updates are made as a separate patch: D108453

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D105169
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Turning on `enable_noundef_analysis` flag allows better codegen by removing freeze instructions.
I modified clang by renaming `enable_noundef_analysis` flag to `disable-noundef-analysis` and turning it off by default.

Test updates are made as a separate patch: D108453

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D105169
</pre>
</div>
</content>
</entry>
</feed>
