With the new pass manager enabled by default, some tests produce slightly different IR from the legacy PM. This patch just adds separate new PM runs and checks for the new PM IR.
This fixes:
Clang :: CodeGen/avx512-reduceMinMaxIntrin.c Clang :: CodeGen/avx512f-builtins.c Clang :: CodeGen/avx512vl-builtins.c Clang :: CodeGen/avx512vlbw-builtins.c Clang :: CodeGenOpenCL/convergent.cl
For CodeGenOpenCL/convergent.cl, the new PM produced a slightly different for loop, but this still checks for no loop unrolling as intended.
For the avx-builtins tests, the new PM would produce extra bitcasts that did not affect the overall logic of the function, but I do not know a simple way to get rid of these bitcasts.
For CodeGen/avx512-reduceMinMaxIntrin.c, temporary local variables are produced in the codegen, but the allocas are out of order and the tests were pretty strict on order even though the logic/use of these variables was the same. Nearly all checks in this large file were broken, so I was hoping we could run it with legacy only for now and come back to it later to make this easier.
Probably want to use opt -passes=instnamer or some such to use the new PM in the opt invocation as well...