amdgcn: Support unordered floating-point comparison operators
authorKwok Cheung Yeung <kcy@codesourcery.com>
Fri, 3 Apr 2020 10:03:35 +0000 (03:03 -0700)
committerKwok Cheung Yeung <kcy@codesourcery.com>
Fri, 3 Apr 2020 10:12:28 +0000 (03:12 -0700)
2020-04-03  Kwok Cheung Yeung  <kcy@codesourcery.com>

gcc/
* config/gcn/gcn.c (print_operand): Handle unordered comparison
operators.
* config/gcn/predicates.md (gcn_fp_compare_operator): Add unordered
comparison operators.

gcc/ChangeLog
gcc/config/gcn/gcn.c
gcc/config/gcn/predicates.md

index 472ce17..11510ac 100644 (file)
@@ -1,3 +1,10 @@
+2020-04-03  Kwok Cheung Yeung  <kcy@codesourcery.com>
+
+       * config/gcn/gcn.c (print_operand): Handle unordered comparison
+       operators.
+       * config/gcn/predicates.md (gcn_fp_compare_operator): Add unordered
+       comparison operators.
+
 2020-04-03  Kewen Lin  <linkw@gcc.gnu.org>
 
        PR tree-optimization/94443
index 12438cf..38b5b98 100644 (file)
@@ -6007,6 +6007,21 @@ print_operand (FILE *file, rtx x, int code)
          case UNORDERED:
            s = "_u_";
            break;
+         case UNEQ:
+           s = "_nlg_";
+           break;
+         case UNGE:
+           s = "_nlt_";
+           break;
+         case UNGT:
+           s = "_nle_";
+           break;
+         case UNLE:
+           s = "_ngt_";
+           break;
+         case UNLT:
+           s = "_nge_";
+           break;
          case LTGT:
            s = "_lg_";
            break;
index 7bf763a..91e5ca1 100644 (file)
   (match_code "eq,ne,gt,ge,lt,le,gtu,geu,ltu,leu"))
 
 (define_predicate "gcn_fp_compare_operator"
-  (match_code "eq,ne,gt,ge,lt,le,gtu,geu,ltu,leu,ordered,unordered,ltgt"))
+  (match_code "eq,ne,gt,ge,lt,le,gtu,geu,ltu,leu,ordered,unordered,uneq,unge,ungt,unle,unlt,ltgt"))
 
 (define_predicate "unary_operator"
   (match_code "not,popcount"))