This change allows to place arbitrary compiler directives between
OpenACCLoopConstruct/OpenACCCombinedConstruct and DO loops.
This is implemented by moving compiler directives before the
corresponding OpenACC construct.
More info can be found here: https://discourse.llvm.org/t/compiler-directives-between-openacc-constructs-and-do-loops