]> git.lizzy.rs Git - rust.git/commitdiff
Fix an AMDGPU related load bit range metadata assertion.
authorRichard Diamond <wichard@vitalitystudios.com>
Thu, 19 Jul 2018 03:05:08 +0000 (22:05 -0500)
committerRichard Diamond <wichard@vitalitystudios.com>
Thu, 23 Aug 2018 19:31:10 +0000 (14:31 -0500)
src/librustc_codegen_llvm/builder.rs

index cfbc2ab90072ddee7c4a217a7951517741c43b0e..e3526a5a2eead0888bb2b4e065a096ff84baa4bf 100644 (file)
@@ -496,6 +496,14 @@ pub fn atomic_load(&self, ptr: &'ll Value, order: AtomicOrdering, align: Align)
 
 
     pub fn range_metadata(&self, load: &'ll Value, range: Range<u128>) {
+        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 = [