radeonsi: use llvm.amdgcn.s.barrier instead of llvm.AMDGPU.barrier.local
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Mon, 25 Jan 2016 19:11:07 +0000 (14:11 -0500)
committerNicolai Hähnle <nicolai.haehnle@amd.com>
Tue, 26 Jan 2016 14:57:06 +0000 (09:57 -0500)
The new name for the intrinsic was introduced in LLVM r258558.

v2: use ternary operator instead of preprocessor

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> (v1)
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/radeonsi/si_shader.c

index c365b149a8699d91d603ff78496593a4677425d9..94c1129c88d2daa7489bf2252fdf8041db809b2a 100644 (file)
@@ -3465,7 +3465,9 @@ static void si_llvm_emit_barrier(const struct lp_build_tgsi_action *action,
 {
        struct gallivm_state *gallivm = bld_base->base.gallivm;
 
-       lp_build_intrinsic(gallivm->builder, "llvm.AMDGPU.barrier.local",
+       lp_build_intrinsic(gallivm->builder,
+                       HAVE_LLVM >= 0x0309 ? "llvm.amdgcn.s.barrier"
+                                           : "llvm.AMDGPU.barrier.local",
                        LLVMVoidTypeInContext(gallivm->context), NULL, 0,
                        LLVMNoUnwindAttribute);
 }