mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-28 06:14:10 +08:00
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
This commit is contained in:
parent
9737efaf7e
commit
224b491b09
@ -1,3 +1,9 @@
|
||||
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>
|
||||
|
||||
* match.pd ((x + y) - (x | y) -> x & y,
|
||||
|
@ -869,35 +869,71 @@
|
||||
""
|
||||
"%.\\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>"
|
||||
[(set (match_operand:SI 0 "nvptx_register_operand" "=R")
|
||||
(match_operator:SI 1 "nvptx_comparison_operator"
|
||||
[(match_operand:HSDIM 2 "nvptx_register_operand" "R")
|
||||
(match_operand:HSDIM 3 "nvptx_nonmemory_operand" "Ri")]))]
|
||||
[(match_operand:HSDIM 2 "nvptx_register_operand" "R")
|
||||
(match_operand:HSDIM 3 "nvptx_nonmemory_operand" "Ri")]))]
|
||||
""
|
||||
"%.\\tset%t0%c1 %0,%2,%3;")
|
||||
|
||||
(define_insn "setcc_int<mode>"
|
||||
[(set (match_operand:SI 0 "nvptx_register_operand" "=R")
|
||||
(match_operator:SI 1 "nvptx_float_comparison_operator"
|
||||
[(match_operand:SDFM 2 "nvptx_register_operand" "R")
|
||||
(match_operand:SDFM 3 "nvptx_nonmemory_operand" "RF")]))]
|
||||
[(match_operand:SDFM 2 "nvptx_register_operand" "R")
|
||||
(match_operand:SDFM 3 "nvptx_nonmemory_operand" "RF")]))]
|
||||
""
|
||||
"%.\\tset%t0%c1 %0,%2,%3;")
|
||||
|
||||
(define_insn "setcc_float<mode>"
|
||||
[(set (match_operand:SF 0 "nvptx_register_operand" "=R")
|
||||
(match_operator:SF 1 "nvptx_comparison_operator"
|
||||
[(match_operand:HSDIM 2 "nvptx_register_operand" "R")
|
||||
(match_operand:HSDIM 3 "nvptx_nonmemory_operand" "Ri")]))]
|
||||
[(match_operand:HSDIM 2 "nvptx_register_operand" "R")
|
||||
(match_operand:HSDIM 3 "nvptx_nonmemory_operand" "Ri")]))]
|
||||
""
|
||||
"%.\\tset%t0%c1 %0,%2,%3;")
|
||||
|
||||
(define_insn "setcc_float<mode>"
|
||||
[(set (match_operand:SF 0 "nvptx_register_operand" "=R")
|
||||
(match_operator:SF 1 "nvptx_float_comparison_operator"
|
||||
[(match_operand:SDFM 2 "nvptx_register_operand" "R")
|
||||
(match_operand:SDFM 3 "nvptx_nonmemory_operand" "RF")]))]
|
||||
[(match_operand:SDFM 2 "nvptx_register_operand" "R")
|
||||
(match_operand:SDFM 3 "nvptx_nonmemory_operand" "RF")]))]
|
||||
""
|
||||
"%.\\tset%t0%c1 %0,%2,%3;")
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user