From 66e8e1953e25a8d9e86e2e3fef88cc178a9cea02 Mon Sep 17 00:00:00 2001 From: Richard Diamond Date: Wed, 18 Jul 2018 22:05:08 -0500 Subject: [PATCH] Fix an AMDGPU related load bit range metadata assertion. --- src/librustc_codegen_llvm/builder.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/librustc_codegen_llvm/builder.rs b/src/librustc_codegen_llvm/builder.rs index cfbc2ab90072..e3526a5a2eea 100644 --- a/src/librustc_codegen_llvm/builder.rs +++ b/src/librustc_codegen_llvm/builder.rs @@ -496,6 +496,14 @@ impl Builder<'a, 'll, 'tcx> { pub fn range_metadata(&self, load: &'ll Value, range: Range) { + if self.sess().target.target.arch == "amdgpu" { + // amdgpu/LLVM does something weird and thinks a i64 value is + // split into a v2i32, halving the bitwidth LLVM expects, + // tripping an assertion. So, for now, just disable this + // optimization. + return; + } + unsafe { let llty = val_ty(load); let v = [