Messages in this thread | | | Date | Thu, 29 Nov 2012 22:18:28 +0100 | From | Andi Kleen <> | Subject | Re: [PATCH] lib/raid6: Add AVX2 optimized recovery functions |
| |
> The code is compiled so that the xmm/ymm registers are not available to > the compiler. Do you have any known examples of asm volatiles being > reordered *with respect to each other*? My understandings of gcc is > that volatile operations are ordered with respect to each other (not > necessarily with respect to non-volatile operations, though.)
Can you quote it from the manual? As I understand volatile as usual is not clearly defined.
gcc has a lot of optimization passes and volatile bugs are common.
> Either way, this implementatin technique was used for the MMX/SSE > implementations without any problems for 9 years now.
It's still wrong.
Lying to the compiler usually bites you at some point.
-Andi
| |