Fix typo in floorv2sf2, should be register_operand for op1, not vector_operand.
authorliuhongt <hongtao.liu@intel.com>
Wed, 21 Sep 2022 08:07:39 +0000 (16:07 +0800)
committerliuhongt <hongtao.liu@intel.com>
Thu, 22 Sep 2022 06:03:33 +0000 (14:03 +0800)
gcc/ChangeLog:

PR target/106994
* config/i386/mmx.md (floorv2sf2): Fix typo, use
register_operand instead of vector_operand for operands[1].

gcc/testsuite/ChangeLog:

* gcc.target/i386/pr106994.c: New test.

gcc/config/i386/mmx.md
gcc/testsuite/gcc.target/i386/pr106994.c [new file with mode: 0644]

index 222a041..c359e2d 100644 (file)
 (define_expand "floorv2sf2"
   [(set (match_operand:V2SF 0 "register_operand")
        (unspec:V2SF
-         [(match_operand:V2SF 1 "vector_operand")
+         [(match_operand:V2SF 1 "register_operand")
           (match_dup 2)]
          UNSPEC_ROUND))]
   "TARGET_SSE4_1 && !flag_trapping_math
diff --git a/gcc/testsuite/gcc.target/i386/pr106994.c b/gcc/testsuite/gcc.target/i386/pr106994.c
new file mode 100644 (file)
index 0000000..0803311
--- /dev/null
@@ -0,0 +1,24 @@
+/* { dg-do compile } */
+/* { dg-options "-march=skylake -Ofast" } */
+
+typedef struct {
+  float ymin, ymax;
+} rctf;
+
+rctf view2d_map_cur_using_maskUI_view2d_view_ortho_curmasked;
+float view2d_map_cur_using_maskUI_view2d_view_ortho_yofs;
+
+void BLI_rctf_translate();
+void glLoadIdentity();
+
+void
+view2d_map_cur_using_maskUI_view2d_view_ortho() {
+  BLI_rctf_translate(&view2d_map_cur_using_maskUI_view2d_view_ortho_curmasked);
+  view2d_map_cur_using_maskUI_view2d_view_ortho_curmasked.ymin =
+      __builtin_floor(view2d_map_cur_using_maskUI_view2d_view_ortho_curmasked.ymin) -
+      view2d_map_cur_using_maskUI_view2d_view_ortho_yofs;
+  view2d_map_cur_using_maskUI_view2d_view_ortho_curmasked.ymax =
+      __builtin_floor(view2d_map_cur_using_maskUI_view2d_view_ortho_curmasked.ymax) -
+      view2d_map_cur_using_maskUI_view2d_view_ortho_yofs;
+  glLoadIdentity();
+}