<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi Uri,<div class=""><br class=""></div><div class="">Unfortunately the fix for this didn't make into 13.0.0, and will hopefully be part of 13.0.1 (when that comes out I can't say though).</div><div class=""><br class=""></div><div class="">-Dimitry</div><div class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 25 Oct 2021, at 23:35, Blumenthal, Uri - 0553 - MITLL via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta charset="UTF-8" class=""><div class="WordSection1" style="page: WordSection1; caret-color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt;" class="">I just tried Clang-13 (with LLVM-13), and the problem is still there. Vectorizer still broken wrt. SSE-4.1 instruction extensions:<o:p class=""></o:p></span></div><div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt;" class=""><o:p class=""> </o:p></span></div><div style="margin: 0in; background-color: black; font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class=""><span class="s1">$ echo $CXXFLAGS</span><o:p class=""></o:p></div><div style="margin: 0in; background-color: black; font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class=""><span class="s1">-std=gnu++17 -O3 -march=native -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk</span><o:p class=""></o:p></div><div style="margin: 0in; background-color: black; font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class=""><span class="s1">$ clang++-mp-13 $CXXFLAGS -o t sha3-reproducer.cxx</span><span class="apple-converted-space"> </span><o:p class=""></o:p></div><div style="margin: 0in; background-color: black; font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class=""><span class="s1">$ ./t</span><o:p class=""></o:p></div><div style="margin: 0in; background-color: black; font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class=""><span class="s1">Assertion failed: (T[0] == 16394434931424703552u), function main, file sha3-reproducer.cxx, line 103.</span><o:p class=""></o:p></div><div style="margin: 0in; background-color: black; font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class=""><span class="s1">Abort trap: 6</span><o:p class=""></o:p></div><div style="margin: 0in; background-color: black; font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class=""><span class="s1">$ clang++-mp-13 $CXXFLAGS -mno-sse4.1 -o t sha3-reproducer.cxx</span><span class="apple-converted-space"> </span><o:p class=""></o:p></div><div style="margin: 0in; background-color: black; font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class=""><span class="s1">$ ./t</span><o:p class=""></o:p></div><div style="margin: 0in; background-color: black; font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class=""><span class="s1">$</span><span class="apple-converted-space"> </span><o:p class=""></o:p></div><div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt;" class=""><o:p class=""> </o:p></span></div><div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt;" class=""><o:p class=""> </o:p></span></div><div class=""><div class=""><div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="" class="">--<o:p class=""></o:p></span></div><div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="" class="">Regards,<o:p class=""></o:p></span></div><div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="" class="">Uri<o:p class=""></o:p></span></div><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><i class=""><o:p class=""> </o:p></i></div><div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><i class=""><span style="" class="">There are two ways to design a system. One is to make is so simple there are obviously no deficiencies.</span></i><span style="font-size: 12pt;" class=""><o:p class=""></o:p></span></div><div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><i class=""><span style="" class="">The other is to make it so complex there are no obvious deficiencies.</span></i><span style="font-size: 12pt;" class=""><o:p class=""></o:p></span></div><div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><i class=""><span style="" class="">                                                                                                                                     -  C. A. R. Hoare</span></i><span style="font-size: 12pt;" class=""><o:p class=""></o:p></span></div></div></div><div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt;" class=""><o:p class=""> </o:p></span></div><div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt;" class=""><o:p class=""> </o:p></span></div><div style="border-style: solid none none; border-top-width: 1pt; border-top-color: rgb(181, 196, 223); padding: 3pt 0in 0in;" class=""><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><b class=""><span style="font-size: 12pt;" class="">From:<span class="Apple-converted-space"> </span></span></b><span style="font-size: 12pt;" class="">Jameson Nash <<a href="mailto:vtjnash@gmail.com" class="">vtjnash@gmail.com</a>><br class=""><b class="">Date:<span class="Apple-converted-space"> </span></b>Wednesday, September 29, 2021 at 19:41<br class=""><b class="">To:<span class="Apple-converted-space"> </span></b>Craig Topper <<a href="mailto:craig.topper@gmail.com" class="">craig.topper@gmail.com</a>><br class=""><b class="">Cc:<span class="Apple-converted-space"> </span></b>Uri Blumenthal <<a href="mailto:uri@ll.mit.edu" class="">uri@ll.mit.edu</a>>, LLVM-DEV LIST <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>><br class=""><b class="">Subject:<span class="Apple-converted-space"> </span></b>Re: [llvm-dev] Problem with clang optimizer?<o:p class=""></o:p></span></div></div><div class=""><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></div></div><div class=""><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class="">This may be fixed now (<a href="https://reviews.llvm.org/D106613" style="color: blue; text-decoration: underline;" class="">https://reviews.llvm.org/D106613</a>), but it remains to be confirmed for <a href="https://bugs.llvm.org/show_bug.cgi?id=51957" style="color: blue; text-decoration: underline;" class="">https://bugs.llvm.org/show_bug.cgi?id=51957</a><o:p class=""></o:p></div></div><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></div><div class=""><div class=""><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class="">On Sun, Sep 26, 2021 at 1:12 AM Craig Topper via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" style="color: blue; text-decoration: underline;" class="">llvm-dev@lists.llvm.org</a>> wrote:<o:p class=""></o:p></div></div><blockquote style="border-style: none none none solid; border-left-width: 1pt; border-left-color: rgb(204, 204, 204); padding: 0in 0in 0in 6pt; margin-left: 4.8pt; margin-right: 0in;" class="" type="cite"><div class=""><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class="">Looking at the IR here <a href="https://godbolt.org/z/zaMW1renW" target="_blank" style="color: blue; text-decoration: underline;" class="">https://godbolt.org/z/zaMW1renW</a><span class="Apple-converted-space"> </span>I believe the issue is on this instruction on line 361<o:p class=""></o:p></div><div class=""><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15.75pt; background-color: rgb(255, 255, 254);" class=""><span style="font-size: 10.5pt; font-family: Consolas; color: rgb(205, 49, 49);" class="">%30</span><span style="font-size: 10.5pt; font-family: Consolas;" class=""><span class="Apple-converted-space"> </span></span><span style="font-size: 10.5pt; font-family: Consolas; color: rgb(205, 49, 49);" class="">=</span><span style="font-size: 10.5pt; font-family: Consolas;" class=""><span class="Apple-converted-space"> </span></span><span style="font-size: 10.5pt; font-family: Consolas; color: blue;" class="">extractelement</span><span style="font-size: 10.5pt; font-family: Consolas;" class=""><span class="Apple-converted-space"> </span><</span><span style="font-size: 10.5pt; font-family: Consolas; color: rgb(9, 134, 88);" class="">2</span><span style="font-size: 10.5pt; font-family: Consolas;" class=""><span class="Apple-converted-space"> </span></span><span style="font-size: 10.5pt; font-family: Consolas; color: teal;" class="">x</span><span style="font-size: 10.5pt; font-family: Consolas;" class=""><span class="Apple-converted-space"> </span><</span><span style="font-size: 10.5pt; font-family: Consolas; color: rgb(9, 134, 88);" class="">2</span><span style="font-size: 10.5pt; font-family: Consolas;" class=""><span class="Apple-converted-space"> </span></span><span style="font-size: 10.5pt; font-family: Consolas; color: teal;" class="">x</span><span style="font-size: 10.5pt; font-family: Consolas;" class=""><span class="Apple-converted-space"> </span></span><span style="font-size: 10.5pt; font-family: Consolas; color: teal;" class="">i64</span><span style="font-size: 10.5pt; font-family: Consolas;" class="">>*><span class="Apple-converted-space"> </span></span><span style="font-size: 10.5pt; font-family: Consolas; color: teal;" class="">%bc438</span><span style="font-size: 10.5pt; font-family: Consolas;" class="">,<span class="Apple-converted-space"> </span></span><span style="font-size: 10.5pt; font-family: Consolas; color: teal;" class="">i32</span><span style="font-size: 10.5pt; font-family: Consolas;" class=""><span class="Apple-converted-space"> </span></span><span style="font-size: 10.5pt; font-family: Consolas; color: rgb(9, 134, 88);" class="">0</span><span style="font-size: 10.5pt; font-family: Consolas;" class=""><o:p class=""></o:p></span></div></div><div class=""><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15.75pt; background-color: rgb(255, 255, 254);" class=""><span style="font-size: 10.5pt; font-family: Consolas;" class=""><o:p class=""> </o:p></span></div></div><div class=""><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15.75pt; background-color: rgb(255, 255, 254);" class=""><span style="font-size: 10.5pt; font-family: Consolas;" class="">It should be extracting from index 1 instead of index 0.<o:p class=""></o:p></span></div></div></div></div><div class=""><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><br clear="all" class=""><o:p class=""></o:p></div><div class=""><div class=""><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class="">~Craig<o:p class=""></o:p></div></div></div><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></div></div></div><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></div><div class=""><div class=""><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class="">On Sat, Sep 25, 2021 at 5:48 PM Blumenthal, Uri - 0553 - MITLL <<a href="mailto:uri@ll.mit.edu" target="_blank" style="color: blue; text-decoration: underline;" class="">uri@ll.mit.edu</a>> wrote:<o:p class=""></o:p></div></div><blockquote style="border-style: none none none solid; border-left-width: 1pt; border-left-color: rgb(204, 204, 204); padding: 0in 0in 0in 6pt; margin-left: 4.8pt; margin-right: 0in;" class="" type="cite"><div class=""><div class=""><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt;" class="">I found that<span class="Apple-converted-space"> </span></span><o:p class=""></o:p></div><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.25in;" class=""><span style="font-size: 10pt; font-family: Symbol;" class=""><span class="">·<span style="font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: "Times New Roman";" class="">        <span class="Apple-converted-space"> </span></span></span></span><span dir="LTR" class=""></span><b class=""><span style="font-size: 12pt;" class="">The problem disappears with<span class="Apple-converted-space"> </span></span></b><b class=""><span style="font-size: 12pt; font-family: Courier; color: rgb(0, 32, 96);" class="">-mno-sse4.1</span></b><o:p class=""></o:p></div><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.25in;" class=""><span style="font-size: 10pt; font-family: Symbol;" class=""><span class="">·<span style="font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: "Times New Roman";" class="">        <span class="Apple-converted-space"> </span></span></span></span><span dir="LTR" class=""></span><span style="font-size: 12pt;" class="">The problem manifests with both Apple Clang from Xcode-13, and LLVM Clang-12 (and not with Xcode-12 or LLVM Clang-11)</span><o:p class=""></o:p></div><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.25in;" class=""><span style="font-size: 10pt; font-family: Symbol;" class=""><span class="">·<span style="font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: "Times New Roman";" class="">        <span class="Apple-converted-space"> </span></span></span></span><span dir="LTR" class=""></span><span style="font-size: 12pt;" class="">I could experiment only on Apple platform, as that’s the only one I have that runs LLVM Clang-12.</span><o:p class=""></o:p></div><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt;" class=""> </span><o:p class=""></o:p></div><div class=""><div class=""><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="" class="">--</span><o:p class=""></o:p></div><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="" class="">Regards,</span><o:p class=""></o:p></div><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="" class="">Uri</span><o:p class=""></o:p></div><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><i class=""> </i><o:p class=""></o:p></div><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><i class=""><span style="" class="">There are two ways to design a system. One is to make is so simple there are obviously no deficiencies.</span></i><o:p class=""></o:p></div><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><i class=""><span style="" class="">The other is to make it so complex there are no obvious deficiencies.</span></i><o:p class=""></o:p></div><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><i class=""><span style="" class="">                                                                                                                                     -  C. A. R. Hoare</span></i><o:p class=""></o:p></div></div></div><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt;" class=""> </span><o:p class=""></o:p></div><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt;" class=""> </span><o:p class=""></o:p></div><div style="border-style: solid none none; border-top-width: 1pt; border-top-color: rgb(181, 196, 223); padding: 3pt 0in 0in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><b class=""><span style="font-size: 12pt;" class="">From:<span class="Apple-converted-space"> </span></span></b><span style="font-size: 12pt;" class="">Craig Topper <<a href="mailto:craig.topper@gmail.com" target="_blank" style="color: blue; text-decoration: underline;" class="">craig.topper@gmail.com</a>><br class=""><b class="">Date:<span class="Apple-converted-space"> </span></b>Saturday, September 25, 2021 at 12:07<br class=""><b class="">To:<span class="Apple-converted-space"> </span></b>Dimitry Andric <<a href="mailto:dimitry@andric.com" target="_blank" style="color: blue; text-decoration: underline;" class="">dimitry@andric.com</a>><br class=""><b class="">Cc:<span class="Apple-converted-space"> </span></b>Uri Blumenthal <<a href="mailto:uri@ll.mit.edu" target="_blank" style="color: blue; text-decoration: underline;" class="">uri@ll.mit.edu</a>>, LLVM-DEV LIST <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" style="color: blue; text-decoration: underline;" class="">llvm-dev@lists.llvm.org</a>><br class=""><b class="">Subject:<span class="Apple-converted-space"> </span></b>Re: [llvm-dev] Problem with clang optimizer?</span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class="">It reproduced for me with -march=nehalem which does not have AVX.<o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div><div class=""><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class="">On Sat, Sep 25, 2021 at 2:51 AM Dimitry Andric via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" style="color: blue; text-decoration: underline;" class="">llvm-dev@lists.llvm.org</a>> wrote:<o:p class=""></o:p></div></div><blockquote style="border-style: none none none solid; border-left-width: 1pt; border-left-color: rgb(204, 204, 204); padding: 0in 0in 0in 6pt; margin: 5pt 0in 5pt 4.8pt;" class="" type="cite"><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class="">It is only occurring (as far as I can see now) on x86_64, with -mavx enabled. Or with a target CPU that supports AVX. And it is not Apple clang specific.<o:p class=""></o:p></div></div><div class=""><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div><div class=""><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class="">-Dimitry<o:p class=""></o:p></div></div><div class=""><div class=""><div class=""><p class="MsoNormal" style="margin: 0in 0in 12pt 1in; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></p><blockquote style="margin-top: 5pt; margin-bottom: 5pt;" class="" type="cite"><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class="">On 24 Sep 2021, at 15:30, Blumenthal, Uri - 0553 - MITLL via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" style="color: blue; text-decoration: underline;" class="">llvm-dev@lists.llvm.org</a>> wrote:<o:p class=""></o:p></div></div><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div><div class=""><div class=""><div class=""><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class="">I tried to reproduce it on goldbolt with clang 12.0.0 and 12.0.1 but things seem fine when I run it there: <a href="https://godbolt.org/z/vrq8j6Kj7" target="_blank" style="color: blue; text-decoration: underline;" class="">https://godbolt.org/z/vrq8j6Kj7</a>.<br class="">Can you share your exact clang invocation? Does it only reproduce in some specific environment?<o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt;" class=""> </span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; color: rgb(0, 112, 192);" class="">Save the source I posted before into “sha3-reproducer.cxx” file. Let me know if you want it re-posted here.</span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; color: rgb(0, 112, 192);" class=""> </span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif; background-color: black;" class=""><span style="font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class="">$ clang++-mp-12 -v</span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif; background-color: black;" class=""><span style="font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class="">clang version 12.0.1</span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif; background-color: black;" class=""><span style="font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class="">Target: x86_64-apple-darwin20.6.0</span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif; background-color: black;" class=""><span style="font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class="">Thread model: posix</span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif; background-color: black;" class=""><span style="font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class="">InstalledDir: /opt/local/libexec/llvm-12/bin</span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif; background-color: black;" class=""><span style="font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class="">$ clang++-mp-12 -o s -O3 sha3-reproducer.cxx</span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif; background-color: black;" class=""><span style="font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class="">$ ./s</span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif; background-color: black;" class=""><span style="font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class="">Assertion failed: (T[0] == 16394434931424703552u), function main, file sha3-reproducer.cxx, line 103.</span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif; background-color: black;" class=""><span style="font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class="">Abort trap: 6</span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif; background-color: black;" class=""><span style="font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class="">$ clang++-mp-12 -o s -O2 sha3-reproducer.cxx</span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif; background-color: black;" class=""><span style="font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class="">$ ./s</span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif; background-color: black;" class=""><span style="font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class="">Assertion failed: (T[0] == 16394434931424703552u), function main, file sha3-reproducer.cxx, line 103.</span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif; background-color: black;" class=""><span style="font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class="">Abort trap: 6</span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif; background-color: black;" class=""><span style="font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class="">$ clang++-mp-12 -o s -O1 sha3-reproducer.cxx</span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif; background-color: black;" class=""><span style="font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class="">$ ./s</span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif; background-color: black;" class=""><span style="font-size: 10.5pt; font-family: "Andale Mono"; color: rgb(47, 255, 18);" class="">$ </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; color: rgb(0, 112, 192);" class=""> </span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; color: rgb(0, 112, 192);" class="">Clang-12 is installed via Macports, which is why we invoke the executable as clang++-mp-12.</span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; color: rgb(0, 112, 192);" class=""> </span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; color: rgb(0, 112, 192);" class="">The same problem manifests in exactly the same way in the Xcode-13 version of Clang (presumably based on LLVM Clang-12). </span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; color: rgb(0, 112, 192);" class=""> </span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; color: rgb(0, 112, 192);" class="">I’ll be happy to provide more of specific details, if you let me know what you need.</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><br class=""><br class="">Also, it generally helps to reduce code bug reports as much as possible; creduce can help with that: <a href="https://embed.cs.utah.edu/creduce/using/" target="_blank" style="color: blue; text-decoration: underline;" class="">https://embed.cs.utah.edu/creduce/using/</a>.<o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt;" class=""> </span><o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; color: rgb(0, 112, 192);" class="">Understood. Unfortunately, the above reproducer is the best we could come up with. An alternative is trying to build the Botan package itself <a href="https://github.com/randombit/botan.git" target="_blank" style="color: blue; text-decoration: underline;" class="">https://github.com/randombit/botan.git</a>.</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><p class="MsoNormal" style="margin: 0in 0in 12pt 1in; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div><div class=""><div class=""><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class="">On Thu, Sep 23, 2021 at 10:14 PM Blumenthal, Uri - 0553 - MITLL via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" style="color: blue; text-decoration: underline;" class="">llvm-dev@lists.llvm.org</a>> wrote:<o:p class=""></o:p></div></div></div><blockquote style="border-style: none none none solid; border-left-width: 1pt; border-left-color: rgb(204, 204, 204); padding: 0in 0in 0in 6pt; margin: 5pt 0in 5pt 4.8pt;" class="" type="cite"><div class=""><div class=""><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt;" class="">I’m not sure if this is the correct list, so please direct me to the right one if this bug report shouldn’t go here.</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt;" class=""> </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt;" class="">The problem is: invoking clang (v12) with -O2 or better optimization flags generates wrong object code for the following C++. Compiling it with -O1 generates working binary.</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt;" class=""> </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt;" class=""> </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt;" class="">=================</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt;" class=""> </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">#include <cstdint></span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">#include <cassert></span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class=""> </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">template<size_t ROT, typename T></span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">inline constexpr T rotl(T input)</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   {</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   static_assert(ROT > 0 && ROT < 8*sizeof(T), "Invalid rotation constant");</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   return static_cast<T>((input << ROT) | (input >> (8*sizeof(T) - ROT)));</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   }</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class=""> </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">inline void SHA3_round(uint64_t T[25], const uint64_t A[25], uint64_t RC)</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   {</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t C0 = A[0] ^ A[5] ^ A[10] ^ A[15] ^ A[20];</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t C1 = A[1] ^ A[6] ^ A[11] ^ A[16] ^ A[21];</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class=""> </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   // the calculation of C2 fails for -O3 or -O2 with clang 12</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   // FWIW: it would produce a value that doesn't fit into a _signed_ 64-bit int</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t C2 = A[2] ^ A[7] ^ A[12] ^ A[17] ^ A[22];</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class=""> </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t C3 = A[3] ^ A[8] ^ A[13] ^ A[18] ^ A[23];</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t C4 = A[4] ^ A[9] ^ A[14] ^ A[19] ^ A[24];</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class=""> </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t D0 = rotl<1>(C0) ^ C3;</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t D1 = rotl<1>(C1) ^ C4;</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t D2 = rotl<1>(C2) ^ C0;</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t D3 = rotl<1>(C3) ^ C1;</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t D4 = rotl<1>(C4) ^ C2;</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class=""> </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B00 =          A[ 0] ^ D1;</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B01 = rotl<44>(A[ 6] ^ D2);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B02 = rotl<43>(A[12] ^ D3);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B03 = rotl<21>(A[18] ^ D4);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B04 = rotl<14>(A[24] ^ D0);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[ 0] = B00 ^ (~B01 & B02) ^ RC;</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[ 1] = B01 ^ (~B02 & B03);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[ 2] = B02 ^ (~B03 & B04);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[ 3] = B03 ^ (~B04 & B00);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[ 4] = B04 ^ (~B00 & B01);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class=""> </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B05 = rotl<28>(A[ 3] ^ D4);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B06 = rotl<20>(A[ 9] ^ D0);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B07 = rotl< 3>(A[10] ^ D1);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B08 = rotl<45>(A[16] ^ D2);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B09 = rotl<61>(A[22] ^ D3);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[ 5] = B05 ^ (~B06 & B07);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[ 6] = B06 ^ (~B07 & B08);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[ 7] = B07 ^ (~B08 & B09);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[ 8] = B08 ^ (~B09 & B05);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[ 9] = B09 ^ (~B05 & B06);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class=""> </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   // --- instructions starting from here can be removed</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   //     and the -O3 dicrepancy is still triggered</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class=""> </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B10 = rotl< 1>(A[ 1] ^ D2);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B11 = rotl< 6>(A[ 7] ^ D3);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B12 = rotl<25>(A[13] ^ D4);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B13 = rotl< 8>(A[19] ^ D0);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B14 = rotl<18>(A[20] ^ D1);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[10] = B10 ^ (~B11 & B12);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[11] = B11 ^ (~B12 & B13);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[12] = B12 ^ (~B13 & B14);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[13] = B13 ^ (~B14 & B10);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[14] = B14 ^ (~B10 & B11);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class=""> </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B15 = rotl<27>(A[ 4] ^ D0);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B16 = rotl<36>(A[ 5] ^ D1);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B17 = rotl<10>(A[11] ^ D2);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B18 = rotl<15>(A[17] ^ D3);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B19 = rotl<56>(A[23] ^ D4);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[15] = B15 ^ (~B16 & B17);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[16] = B16 ^ (~B17 & B18);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[17] = B17 ^ (~B18 & B19);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[18] = B18 ^ (~B19 & B15);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[19] = B19 ^ (~B15 & B16);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class=""> </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B20 = rotl<62>(A[ 2] ^ D3);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B21 = rotl<55>(A[ 8] ^ D4);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B22 = rotl<39>(A[14] ^ D0);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B23 = rotl<41>(A[15] ^ D1);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   const uint64_t B24 = rotl< 2>(A[21] ^ D2);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[20] = B20 ^ (~B21 & B22);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[21] = B21 ^ (~B22 & B23);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[22] = B22 ^ (~B23 & B24);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[23] = B23 ^ (~B24 & B20);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   T[24] = B24 ^ (~B20 & B21);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">   }</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class=""> </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">int main()</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">{</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    uint64_t T[25];</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class=""> </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    uint64_t A[25] = {</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">        15515230172486u, 9751542238472685244u, 220181482233372672u,</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">        2303197730119u, 9537012007446913720u, 0u, 14782389640143539577u,</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">        2305843009213693952u, 1056340403235818873u, 16396894922196123648u,</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">        13438274300558u, 3440198220943040u, 0u, 3435902021559310u, 64u,</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">        14313837075027532897u, 32768u, 6880396441885696u, 14320469711924527201u,</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">        0u, 9814829303127743595u, 18014398509481984u, 14444556046857390455u,</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">        4611686018427387904u, 18041275058083100u };</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class=""> </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    SHA3_round(T, A, 0x0000000000008082);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class=""> </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[0]  == 16394434931424703552u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[1]  == 10202638136074191489u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[2]  == 6432602484395933614u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[3]  == 10616058301262943899u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[4]  == 14391824303596635982u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[5]  == 5673590995284149638u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[6]  == 15681872423764765508u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[7]  == 11470206704342013341u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[8]  == 8508807405493883168u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[9]  == 9461805213344568570u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[10] == 8792313850970105187u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[11] == 13508586629627657374u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[12] == 5157283382205130943u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[13] == 375019647457809685u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[14] == 9294608398083155963u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[15] == 16923121173371064314u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[16] == 4737739424553008030u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[17] == 5823987023293412593u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[18] == 13908063749137376267u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[19] == 13781177305593198238u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[20] == 9673833001659673401u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[21] == 17282395057630454440u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[22] == 12906624984756985556u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[23] == 3081478361927354234u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    assert(T[24] == 93297594635310132u);</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class=""> </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">    return 0;</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt; font-family: Courier;" class="">}</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt;" class="">=================</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt;" class=""> </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 12pt;" class="">Your help debugging and fixing this problem is appreciated!</span><o:p class=""></o:p></div></div><div class=""><div class=""><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class="">--<o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 10pt; font-family: "Andale Mono";" class="">Regards,</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 10pt; font-family: "Andale Mono";" class="">Uri Blumenthal                              Voice: (781) 981-1638 </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 10pt; font-family: "Andale Mono";" class="">Secure Resilient Systems and Technologies   Cell:  (339) 223-5363</span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 10pt; font-family: "Andale Mono";" class="">MIT Lincoln Laboratory                      </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 10pt; font-family: "Andale Mono";" class="">244 <a href="https://www.google.com/maps/search/Wood+Street,+Lexington,+MA+02420-9108?entry=gmail&source=g" target="_blank" style="color: blue; text-decoration: underline;" class="">Wood Street, Lexington, MA</a>  <a href="https://www.google.com/maps/search/Wood+Street,+Lexington,+MA+02420-9108?entry=gmail&source=g" target="_blank" style="color: blue; text-decoration: underline;" class="">02420-9108</a>      </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 10pt; font-family: "Andale Mono";" class=""> </span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 10pt; font-family: "Andale Mono";" class="">Web:     <a href="https://www.ll.mit.edu/biographies/uri-blumenthal" target="_blank" title="https://www.ll.mit.edu/biographies/uri-blumenthal" style="color: blue; text-decoration: underline;" class=""><span style="color: rgb(113, 60, 86);" class="">https://www.ll.mit.edu/biographies/uri-blumenthal</span></a></span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 10pt; font-family: "Andale Mono";" class="">Root CA: <a href="https://www.ll.mit.edu/llrca2.pem" target="_blank" title="https://www.ll.mit.edu/llrca2.pem" style="color: blue; text-decoration: underline;" class=""><span style="color: rgb(113, 60, 86);" class="">https://www.ll.mit.edu/llrca2.pem</span></a></span><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><i class="">There are two ways to design a system. One is to make is so simple there are obviously no deficiencies.</i><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><i class="">The other is to make it so complex there are no obvious deficiencies.</i><o:p class=""></o:p></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><i class="">                                                                                                                                     -  C. A. R. Hoare</i><o:p class=""></o:p></div></div></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class="">_______________________________________________<br class="">LLVM Developers mailing list<br class=""><a href="mailto:llvm-dev@lists.llvm.org" target="_blank" style="color: blue; text-decoration: underline;" class="">llvm-dev@lists.llvm.org</a><br class=""><a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank" style="color: blue; text-decoration: underline;" class="">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><o:p class=""></o:p></div></div></blockquote></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><br clear="all" class=""><o:p class=""></o:p></div></div><div class=""><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class="">-- <o:p class=""></o:p></div></div><div class=""><div class=""><div style="margin-left: 0.5in;" class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class="">Jakub Kuderski<o:p class=""></o:p></div></div></div></div></div><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 9pt; font-family: HelveticaNeue;" class="">_______________________________________________<br class="">LLVM Developers mailing list<br class=""></span><a href="mailto:llvm-dev@lists.llvm.org" target="_blank" style="color: blue; text-decoration: underline;" class=""><span style="font-size: 9pt; font-family: HelveticaNeue;" class="">llvm-dev@lists.llvm.org</span></a><span style="font-size: 9pt; font-family: HelveticaNeue;" class=""><br class=""></span><a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank" style="color: blue; text-decoration: underline;" class=""><span style="font-size: 9pt; font-family: HelveticaNeue;" class="">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</span></a><o:p class=""></o:p></div></div></blockquote></div><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div></div></div><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class="">_______________________________________________<br class="">LLVM Developers mailing list<br class=""><a href="mailto:llvm-dev@lists.llvm.org" target="_blank" style="color: blue; text-decoration: underline;" class="">llvm-dev@lists.llvm.org</a><br class=""><a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank" style="color: blue; text-decoration: underline;" class="">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><o:p class=""></o:p></div></blockquote></div></div><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class="">--<span class="Apple-converted-space"> </span><o:p class=""></o:p></div><div class=""><div style="margin: 0in 0in 0in 1in; font-size: 11pt; font-family: Calibri, sans-serif;" class="">~Craig<o:p class=""></o:p></div></div></div></div></blockquote></div><div style="margin: 0in 0in 0in 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;" class="">_______________________________________________<br class="">LLVM Developers mailing list<br class=""><a href="mailto:llvm-dev@lists.llvm.org" target="_blank" style="color: blue; text-decoration: underline;" class="">llvm-dev@lists.llvm.org</a><br class=""><a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank" style="color: blue; text-decoration: underline;" class="">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><o:p class=""></o:p></div></blockquote></div></div><span style="caret-color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">_______________________________________________</span><br style="caret-color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">LLVM Developers mailing list</span><br style="caret-color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class=""><a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a></span><br style="caret-color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class=""><a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" class="">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a></span></div></blockquote></div><br class=""></div></body></html>