diff --git a/src/amd/common/ac_llvm_util.c b/src/amd/common/ac_llvm_util.c index a2fe631c00f..3687e98c85f 100644 --- a/src/amd/common/ac_llvm_util.c +++ b/src/amd/common/ac_llvm_util.c @@ -26,7 +26,7 @@ #include "ac_llvm_util.h" #include "util/bitscan.h" #include - +#include #include "c11/threads.h" #include @@ -39,6 +39,17 @@ static void ac_init_llvm_target() LLVMInitializeAMDGPUTarget(); LLVMInitializeAMDGPUTargetMC(); LLVMInitializeAMDGPUAsmPrinter(); + + /* + * Workaround for bug in llvm 4.0 that causes image intrinsics + * to disappear. + * https://reviews.llvm.org/D26348 + */ +#if HAVE_LLVM >= 0x0400 + const char *argv[2] = {"mesa", "-simplifycfg-sink-common=false"}; + LLVMParseCommandLineOptions(2, argv, NULL); +#endif + } static once_flag ac_init_llvm_target_once_flag = ONCE_FLAG_INIT;