]> git.lizzy.rs Git - rust.git/commitdiff
fix vector fmin/fmax non-fast/fast intrinsics NaN handling
authorgnzlbg <gonzalobg88@gmail.com>
Wed, 21 Mar 2018 09:32:53 +0000 (10:32 +0100)
committergnzlbg <gonzalobg88@gmail.com>
Wed, 21 Mar 2018 09:32:53 +0000 (10:32 +0100)
src/librustc_trans/builder.rs

index 3f5a9a54ff1eacfab2bd485672b2091e50d4635a..91eabb9998f4a6425d7ae0b1105424bf250688b6 100644 (file)
@@ -1036,7 +1036,7 @@ pub fn vector_reduce_xor(&self, src: ValueRef) -> ValueRef {
     pub fn vector_reduce_fmin(&self, src: ValueRef) -> ValueRef {
         self.count_insn("vector.reduce.fmin");
         unsafe {
-            let instr = llvm::LLVMRustBuildVectorReduceFMin(self.llbuilder, src, true);
+            let instr = llvm::LLVMRustBuildVectorReduceFMin(self.llbuilder, src, /*NoNaNs:*/ false);
             if instr.is_null() {
                 bug!("LLVMRustBuildVectorReduceFMin is not available in LLVM version < 5.0");
             }
@@ -1046,7 +1046,7 @@ pub fn vector_reduce_fmin(&self, src: ValueRef) -> ValueRef {
     pub fn vector_reduce_fmax(&self, src: ValueRef) -> ValueRef {
         self.count_insn("vector.reduce.fmax");
         unsafe {
-            let instr = llvm::LLVMRustBuildVectorReduceFMax(self.llbuilder, src, true);
+            let instr = llvm::LLVMRustBuildVectorReduceFMax(self.llbuilder, src, /*NoNaNs:*/ false);
             if instr.is_null() {
                 bug!("LLVMRustBuildVectorReduceFMax is not available in LLVM version < 5.0");
             }
@@ -1056,7 +1056,7 @@ pub fn vector_reduce_fmax(&self, src: ValueRef) -> ValueRef {
     pub fn vector_reduce_fmin_fast(&self, src: ValueRef) -> ValueRef {
         self.count_insn("vector.reduce.fmin_fast");
         unsafe {
-            let instr = llvm::LLVMRustBuildVectorReduceFMin(self.llbuilder, src, false);
+            let instr = llvm::LLVMRustBuildVectorReduceFMin(self.llbuilder, src, /*NoNaNs:*/ true);
             if instr.is_null() {
                 bug!("LLVMRustBuildVectorReduceFMin is not available in LLVM version < 5.0");
             }
@@ -1067,7 +1067,7 @@ pub fn vector_reduce_fmin_fast(&self, src: ValueRef) -> ValueRef {
     pub fn vector_reduce_fmax_fast(&self, src: ValueRef) -> ValueRef {
         self.count_insn("vector.reduce.fmax_fast");
         unsafe {
-            let instr = llvm::LLVMRustBuildVectorReduceFMax(self.llbuilder, src, false);
+            let instr = llvm::LLVMRustBuildVectorReduceFMax(self.llbuilder, src, /*NoNaNs:*/ true);
             if instr.is_null() {
                 bug!("LLVMRustBuildVectorReduceFMax is not available in LLVM version < 5.0");
             }