comparison gcc/config/rs6000/dfp.md @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
1 ;; Decimal Floating Point (DFP) patterns. 1 ;; Decimal Floating Point (DFP) patterns.
2 ;; Copyright (C) 2007-2017 Free Software Foundation, Inc. 2 ;; Copyright (C) 2007-2018 Free Software Foundation, Inc.
3 ;; Contributed by Ben Elliston (bje@au.ibm.com) and Peter Bergner 3 ;; Contributed by Ben Elliston (bje@au.ibm.com) and Peter Bergner
4 ;; (bergner@vnet.ibm.com). 4 ;; (bergner@vnet.ibm.com).
5 5
6 ;; This file is part of GCC. 6 ;; This file is part of GCC.
7 7
35 UNSPEC_MOVSD_STORE))] 35 UNSPEC_MOVSD_STORE))]
36 "(gpc_reg_operand (operands[0], DDmode) 36 "(gpc_reg_operand (operands[0], DDmode)
37 || gpc_reg_operand (operands[1], SDmode)) 37 || gpc_reg_operand (operands[1], SDmode))
38 && TARGET_HARD_FLOAT" 38 && TARGET_HARD_FLOAT"
39 "stfd%U0%X0 %1,%0" 39 "stfd%U0%X0 %1,%0"
40 [(set_attr "type" "fpstore") 40 [(set_attr "type" "fpstore")])
41 (set_attr "length" "4")])
42 41
43 (define_insn "movsd_load" 42 (define_insn "movsd_load"
44 [(set (match_operand:SD 0 "nonimmediate_operand" "=f") 43 [(set (match_operand:SD 0 "nonimmediate_operand" "=f")
45 (unspec:SD [(match_operand:DD 1 "input_operand" "m")] 44 (unspec:SD [(match_operand:DD 1 "input_operand" "m")]
46 UNSPEC_MOVSD_LOAD))] 45 UNSPEC_MOVSD_LOAD))]
47 "(gpc_reg_operand (operands[0], SDmode) 46 "(gpc_reg_operand (operands[0], SDmode)
48 || gpc_reg_operand (operands[1], DDmode)) 47 || gpc_reg_operand (operands[1], DDmode))
49 && TARGET_HARD_FLOAT" 48 && TARGET_HARD_FLOAT"
50 "lfd%U1%X1 %0,%1" 49 "lfd%U1%X1 %0,%1"
51 [(set_attr "type" "fpload") 50 [(set_attr "type" "fpload")])
52 (set_attr "length" "4")])
53 51
54 ;; Hardware support for decimal floating point operations. 52 ;; Hardware support for decimal floating point operations.
55 53
56 (define_insn "extendsddd2" 54 (define_insn "extendsddd2"
57 [(set (match_operand:DD 0 "gpc_reg_operand" "=d") 55 [(set (match_operand:DD 0 "gpc_reg_operand" "=d")
342 340
343 (define_expand "dfptstsfi_<code>_<mode>" 341 (define_expand "dfptstsfi_<code>_<mode>"
344 [(set (match_dup 3) 342 [(set (match_dup 3)
345 (compare:CCFP 343 (compare:CCFP
346 (unspec:D64_D128 344 (unspec:D64_D128
347 [(match_operand:SI 1 "const_int_operand" "n") 345 [(match_operand:SI 1 "const_int_operand")
348 (match_operand:D64_D128 2 "gpc_reg_operand" "d")] 346 (match_operand:D64_D128 2 "gpc_reg_operand")]
349 UNSPEC_DTSTSFI) 347 UNSPEC_DTSTSFI)
350 (match_dup 4))) 348 (match_dup 4)))
351 (set (match_operand:SI 0 "register_operand" "") 349 (set (match_operand:SI 0 "register_operand")
352 (DFP_TEST:SI (match_dup 3) 350 (DFP_TEST:SI (match_dup 3)
353 (const_int 0))) 351 (const_int 0)))
354 ] 352 ]
355 "TARGET_P9_MISC" 353 "TARGET_P9_MISC"
356 { 354 {