Reapply 201734 but with appropriate gcc compatibility
Because GCC incorrectly defines _mm_prefetch to take anything that casts
to void*, people have started using that behavior.  The previous patch
that made _mm_prefetch actually take a const char * broke compatibility
with existing code.  This update to the patch leaves the macro that
defines _mm_prefetch with the (void*) cast when _MSC_VER is not defined.
Use -polly-codegen-isl in isl-codegen test

Reported-by: Sebastian Pop <spop@codeaurora.org>
Dependences: Do not assign 'WAW' twice

Reported-by: Sebastian Pop <spop@codeaurora.org>
Reported-by: Yabin Hu <yabin.hwu@gmail.com>