Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/powerpcspe/vsx.md @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
comparison
equal
deleted
inserted
replaced
111:04ced10e8804 | 131:84e7813d76e9 |
---|---|
1 ;; VSX patterns. | 1 ;; VSX patterns. |
2 ;; Copyright (C) 2009-2017 Free Software Foundation, Inc. | 2 ;; Copyright (C) 2009-2018 Free Software Foundation, Inc. |
3 ;; Contributed by Michael Meissner <meissner@linux.vnet.ibm.com> | 3 ;; Contributed by Michael Meissner <meissner@linux.vnet.ibm.com> |
4 | 4 |
5 ;; This file is part of GCC. | 5 ;; This file is part of GCC. |
6 | 6 |
7 ;; GCC is free software; you can redistribute it and/or modify it | 7 ;; GCC is free software; you can redistribute it and/or modify it |
2541 else | 2541 else |
2542 return "xxpermdi %x0,%x2,%x1,%3"; | 2542 return "xxpermdi %x0,%x2,%x1,%3"; |
2543 } | 2543 } |
2544 [(set_attr "type" "vecperm")]) | 2544 [(set_attr "type" "vecperm")]) |
2545 | 2545 |
2546 (define_expand "vec_perm_const<mode>" | |
2547 [(match_operand:VSX_D 0 "vsx_register_operand" "") | |
2548 (match_operand:VSX_D 1 "vsx_register_operand" "") | |
2549 (match_operand:VSX_D 2 "vsx_register_operand" "") | |
2550 (match_operand:V2DI 3 "" "")] | |
2551 "VECTOR_MEM_VSX_P (<MODE>mode)" | |
2552 { | |
2553 if (rs6000_expand_vec_perm_const (operands)) | |
2554 DONE; | |
2555 else | |
2556 FAIL; | |
2557 }) | |
2558 | |
2559 ;; Extraction of a single element in a small integer vector. Until ISA 3.0, | 2546 ;; Extraction of a single element in a small integer vector. Until ISA 3.0, |
2560 ;; none of the small types were allowed in a vector register, so we had to | 2547 ;; none of the small types were allowed in a vector register, so we had to |
2561 ;; extract to a DImode and either do a direct move or store. | 2548 ;; extract to a DImode and either do a direct move or store. |
2562 (define_expand "vsx_extract_<mode>" | 2549 (define_expand "vsx_extract_<mode>" |
2563 [(parallel [(set (match_operand:<VS_scalar> 0 "gpc_reg_operand") | 2550 [(parallel [(set (match_operand:<VS_scalar> 0 "gpc_reg_operand") |