Commit 224b491b by Nathan Sidwell Committed by Nathan Sidwell

nvptx.md (sel_true<mode>, [...]): New conditional selects.

	* config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
	conditional selects.
	(setcc_int<mode>, setcc_float<mode>): Reformat.

From-SVN: r224839
parent 9737efaf
2015-06-23 Nathan Sidwell <nathan@codesourcery.com>
* config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
conditional selects.
(setcc_int<mode>, setcc_float<mode>): Reformat.
2015-06-23 Marek Polacek <polacek@redhat.com> 2015-06-23 Marek Polacek <polacek@redhat.com>
* match.pd ((x + y) - (x | y) -> x & y, * match.pd ((x + y) - (x | y) -> x & y,
......
...@@ -869,35 +869,71 @@ ...@@ -869,35 +869,71 @@
"" ""
"%.\\tselp%t0 %0,-1,0,%1;") "%.\\tselp%t0 %0,-1,0,%1;")
(define_insn "sel_true<mode>"
[(set (match_operand:HSDIM 0 "nvptx_register_operand" "=R")
(if_then_else:HSDIM
(ne (match_operand:BI 1 "nvptx_register_operand" "R") (const_int 0))
(match_operand:HSDIM 2 "nvptx_nonmemory_operand" "Ri")
(match_operand:HSDIM 3 "nvptx_nonmemory_operand" "Ri")))]
""
"%.\\tselp%t0\\t%0, %2, %3, %1;")
(define_insn "sel_true<mode>"
[(set (match_operand:SDFM 0 "nvptx_register_operand" "=R")
(if_then_else:SDFM
(ne (match_operand:BI 1 "nvptx_register_operand" "R") (const_int 0))
(match_operand:SDFM 2 "nvptx_nonmemory_operand" "RF")
(match_operand:SDFM 3 "nvptx_nonmemory_operand" "RF")))]
""
"%.\\tselp%t0\\t%0, %2, %3, %1;")
(define_insn "sel_false<mode>"
[(set (match_operand:HSDIM 0 "nvptx_register_operand" "=R")
(if_then_else:HSDIM
(eq (match_operand:BI 1 "nvptx_register_operand" "R") (const_int 0))
(match_operand:HSDIM 2 "nvptx_nonmemory_operand" "Ri")
(match_operand:HSDIM 3 "nvptx_nonmemory_operand" "Ri")))]
""
"%.\\tselp%t0\\t%0, %3, %2, %1;")
(define_insn "sel_false<mode>"
[(set (match_operand:SDFM 0 "nvptx_register_operand" "=R")
(if_then_else:SDFM
(eq (match_operand:BI 1 "nvptx_register_operand" "R") (const_int 0))
(match_operand:SDFM 2 "nvptx_nonmemory_operand" "RF")
(match_operand:SDFM 3 "nvptx_nonmemory_operand" "RF")))]
""
"%.\\tselp%t0\\t%0, %3, %2, %1;")
(define_insn "setcc_int<mode>" (define_insn "setcc_int<mode>"
[(set (match_operand:SI 0 "nvptx_register_operand" "=R") [(set (match_operand:SI 0 "nvptx_register_operand" "=R")
(match_operator:SI 1 "nvptx_comparison_operator" (match_operator:SI 1 "nvptx_comparison_operator"
[(match_operand:HSDIM 2 "nvptx_register_operand" "R") [(match_operand:HSDIM 2 "nvptx_register_operand" "R")
(match_operand:HSDIM 3 "nvptx_nonmemory_operand" "Ri")]))] (match_operand:HSDIM 3 "nvptx_nonmemory_operand" "Ri")]))]
"" ""
"%.\\tset%t0%c1 %0,%2,%3;") "%.\\tset%t0%c1 %0,%2,%3;")
(define_insn "setcc_int<mode>" (define_insn "setcc_int<mode>"
[(set (match_operand:SI 0 "nvptx_register_operand" "=R") [(set (match_operand:SI 0 "nvptx_register_operand" "=R")
(match_operator:SI 1 "nvptx_float_comparison_operator" (match_operator:SI 1 "nvptx_float_comparison_operator"
[(match_operand:SDFM 2 "nvptx_register_operand" "R") [(match_operand:SDFM 2 "nvptx_register_operand" "R")
(match_operand:SDFM 3 "nvptx_nonmemory_operand" "RF")]))] (match_operand:SDFM 3 "nvptx_nonmemory_operand" "RF")]))]
"" ""
"%.\\tset%t0%c1 %0,%2,%3;") "%.\\tset%t0%c1 %0,%2,%3;")
(define_insn "setcc_float<mode>" (define_insn "setcc_float<mode>"
[(set (match_operand:SF 0 "nvptx_register_operand" "=R") [(set (match_operand:SF 0 "nvptx_register_operand" "=R")
(match_operator:SF 1 "nvptx_comparison_operator" (match_operator:SF 1 "nvptx_comparison_operator"
[(match_operand:HSDIM 2 "nvptx_register_operand" "R") [(match_operand:HSDIM 2 "nvptx_register_operand" "R")
(match_operand:HSDIM 3 "nvptx_nonmemory_operand" "Ri")]))] (match_operand:HSDIM 3 "nvptx_nonmemory_operand" "Ri")]))]
"" ""
"%.\\tset%t0%c1 %0,%2,%3;") "%.\\tset%t0%c1 %0,%2,%3;")
(define_insn "setcc_float<mode>" (define_insn "setcc_float<mode>"
[(set (match_operand:SF 0 "nvptx_register_operand" "=R") [(set (match_operand:SF 0 "nvptx_register_operand" "=R")
(match_operator:SF 1 "nvptx_float_comparison_operator" (match_operator:SF 1 "nvptx_float_comparison_operator"
[(match_operand:SDFM 2 "nvptx_register_operand" "R") [(match_operand:SDFM 2 "nvptx_register_operand" "R")
(match_operand:SDFM 3 "nvptx_nonmemory_operand" "RF")]))] (match_operand:SDFM 3 "nvptx_nonmemory_operand" "RF")]))]
"" ""
"%.\\tset%t0%c1 %0,%2,%3;") "%.\\tset%t0%c1 %0,%2,%3;")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment