You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

gemm_beta.c 3.9 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. /*********************************************************************/
  2. /* Copyright 2009, 2010 The University of Texas at Austin. */
  3. /* All rights reserved. */
  4. /* */
  5. /* Redistribution and use in source and binary forms, with or */
  6. /* without modification, are permitted provided that the following */
  7. /* conditions are met: */
  8. /* */
  9. /* 1. Redistributions of source code must retain the above */
  10. /* copyright notice, this list of conditions and the following */
  11. /* disclaimer. */
  12. /* */
  13. /* 2. Redistributions in binary form must reproduce the above */
  14. /* copyright notice, this list of conditions and the following */
  15. /* disclaimer in the documentation and/or other materials */
  16. /* provided with the distribution. */
  17. /* */
  18. /* THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF TEXAS AT */
  19. /* AUSTIN ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, */
  20. /* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
  21. /* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
  22. /* DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF TEXAS AT */
  23. /* AUSTIN OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
  24. /* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES */
  25. /* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE */
  26. /* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR */
  27. /* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
  28. /* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT */
  29. /* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT */
  30. /* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
  31. /* POSSIBILITY OF SUCH DAMAGE. */
  32. /* */
  33. /* The views and conclusions contained in the software and */
  34. /* documentation are those of the authors and should not be */
  35. /* interpreted as representing official policies, either expressed */
  36. /* or implied, of The University of Texas at Austin. */
  37. /*********************************************************************/
  38. #include "common.h"
  39. int CNAME(BLASLONG m, BLASLONG n, BLASLONG dummy1, FLOAT beta,
  40. IFLOAT *dummy2, BLASLONG dummy3, IFLOAT *dummy4, BLASLONG dummy5,
  41. FLOAT *c, BLASLONG ldc){
  42. BLASLONG i, j;
  43. BLASLONG chunk, remain;
  44. FLOAT *c_offset1, *c_offset;
  45. c_offset = c;
  46. chunk = m >> 3;
  47. remain = m & 7;
  48. if (beta == ZERO){
  49. for(j=n; j>0; j--){
  50. c_offset1 = c_offset;
  51. c_offset += ldc;
  52. for(i=chunk; i>0; i--){
  53. *(c_offset1 + 0) = ZERO;
  54. *(c_offset1 + 1) = ZERO;
  55. *(c_offset1 + 2) = ZERO;
  56. *(c_offset1 + 3) = ZERO;
  57. *(c_offset1 + 4) = ZERO;
  58. *(c_offset1 + 5) = ZERO;
  59. *(c_offset1 + 6) = ZERO;
  60. *(c_offset1 + 7) = ZERO;
  61. c_offset1 += 8;
  62. }
  63. for(i=remain; i>0; i--){
  64. *c_offset1 = ZERO;
  65. c_offset1 ++;
  66. }
  67. }
  68. } else {
  69. for(j=n; j>0; j--){
  70. c_offset1 = c_offset;
  71. c_offset += ldc;
  72. for(i=chunk; i>0; i--){
  73. *(c_offset1 + 0) *= beta;
  74. *(c_offset1 + 1) *= beta;
  75. *(c_offset1 + 2) *= beta;
  76. *(c_offset1 + 3) *= beta;
  77. *(c_offset1 + 4) *= beta;
  78. *(c_offset1 + 5) *= beta;
  79. *(c_offset1 + 6) *= beta;
  80. *(c_offset1 + 7) *= beta;
  81. c_offset1 += 8;
  82. }
  83. for(i=remain; i>0; i--){
  84. *c_offset1 *= beta;
  85. c_offset1 ++;
  86. }
  87. }
  88. }
  89. return 0;
  90. };