The MLIR [GPU dialect docs](https://mlir.llvm.org/docs/Dialects/GPU/#gpubarrier-gpubarrierop) specify that gpu::BarrierOp should make *all memory accesses* visible to all work items in the workgroup. Current implementation uses only CLK_LOCAL_MEM_FENCE, which per the [OpenCL specification](https://registry.khronos.org/OpenCL/sdk/3.0/docs/man/html/barrier.html) guarantees visibility of only *local memory accesses*. This PR changes the barrier conversion to use CLK_LOCAL_MEM_FENCE | CLK_GLOBAL_MEM_FENCE, ensuring both local and global memory operations are properly synchronized per the MLIR spec. This issue was discovered while investigating numerical instabilities on Intel Battlemage, where race conditions occurred due to incomplete memory synchronization.