text: /*
  
       FFTE: A FAST FOURIER TRANSFORM PACKAGE
  
       (C) COPYRIGHT SOFTWARE, 2000-2004, 2008-2014, ALL RIGHTS RESERVED
                  BY
           DAISUKE TAKAHASHI
           FACULTY OF ENGINEERING, INFORMATION AND SYSTEMS
           UNIVERSITY OF TSUKUBA
           1-1-1 TENNODAI, TSUKUBA, IBARAKI 305-8573, JAPAN
           E-MAIL: daisuke@cs.tsukuba.ac.jp
  
  
       WRITTEN BY DAISUKE TAKAHASHI
  
       THIS KERNEL WAS GENERATED BY SPIRAL 8.2.0a03
  */
  
  #include <arm_sve.h>
  
  void dft9c_(float64_t  *Y, float64_t  *X, int  *lp1, int  *mp1) {
      int l1, m1;
      svfloat64x2_t s411, s414, s417, s420, s423, s426, s429, s432, 
              s435, svex2_10, svex2_11, svex2_12, svex2_13, svex2_14, svex2_15, svex2_16, 
              svex2_17, svex2_18;
      svfloat64_t s412, s413, s415, s416, s418, s419, s421, s422, 
              s424, s425, s427, s428, s430, s431, s433, s434, 
              s436, s437, s438, s439, s440, s441, s442, s443, 
              s444, s445, s446, s447, s448, s449, s450, s451, 
              s452, s453, s454, s455, s456, s457, s458, s459, 
              s460, s461, s462, s463, s464, s465, t680, t681, 
              t682, t683, t684, t685, t686, t687, t688, t689, 
              t690, t691, t692, t693, t694, t695, t696, t697, 
              t698, t699, t700, t701, t702, t703, t704, t705, 
              t706, t707, t708, t709, t710, t711, t712, t713, 
              t714, t715, t716, t717, t718, t719, t720, t721;
      svbool_t pg1;
      l1 = *(lp1);
      m1 = *(mp1);
      int k1 = 0;
      pg1 = svwhilelt_b64(k1, m1);
      do {
          s411 = svld2_f64(pg1, (X + ((2)*(k1))));
          s412 = s411.v0;
          s413 = s411.v1;
          s414 = svld2_f64(pg1, (X + ((2)*((k1 + ((l1)*(m1)))))));
          s415 = s414.v0;
          s416 = s414.v1;
          s417 = svld2_f64(pg1, (X + ((2)*((k1 + ((((2)*(l1)))*(m1)))))));
          s418 = s417.v0;
          s419 = s417.v1;
          s420 = svld2_f64(pg1, (X + ((2)*((k1 + ((((3)*(l1)))*(m1)))))));
          s421 = s420.v0;
          s422 = s420.v1;
          s423 = svld2_f64(pg1, (X + ((2)*((k1 + ((((4)*(l1)))*(m1)))))));
          s424 = s423.v0;
          s425 = s423.v1;
          s426 = svld2_f64(pg1, (X + ((2)*((k1 + ((((5)*(l1)))*(m1)))))));
          s427 = s426.v0;
          s428 = s426.v1;
          s429 = svld2_f64(pg1, (X + ((2)*((k1 + ((((6)*(l1)))*(m1)))))));
          s430 = s429.v0;
          s431 = s429.v1;
          s432 = svld2_f64(pg1, (X + ((2)*((k1 + ((((7)*(l1)))*(m1)))))));
          s433 = s432.v0;
          s434 = s432.v1;
          s435 = svld2_f64(pg1, (X + ((2)*((k1 + ((((8)*(l1)))*(m1)))))));
          s436 = s435.v0;
          s437 = s435.v1;
          t680 = svadd_f64_x(pg1, s421, s430);
          t681 = svadd_f64_x(pg1, s422, s431);
          t682 = svadd_f64_x(pg1, s412, t680);
          t683 = svadd_f64_x(pg1, s413, t681);
          t684 = svmls_n_f64_x(pg1, s412, t680, 0.5);
          t685 = svmls_n_f64_x(pg1, s413, t681, 0.5);
          s438 = svmul_n_f64_x(pg1, svsub_f64_x(pg1, s422, s431), 0.8660254037844386);
          s439 = svmul_n_f64_x(pg1, svsub_f64_x(pg1, s421, s430), 0.8660254037844386);
          t686 = svadd_f64_x(pg1, t684, s438);
          t687 = svsub_f64_x(pg1, t685, s439);
          t688 = svsub_f64_x(pg1, t684, s438);
          t689 = svadd_f64_x(pg1, t685, s439);
          t690 = svadd_f64_x(pg1, s424, s433);
          t691 = svadd_f64_x(pg1, s425, s434);
          t692 = svadd_f64_x(pg1, s415, t690);
          t693 = svadd_f64_x(pg1, s416, t691);
          t694 = svmls_n_f64_x(pg1, s415, t690, 0.5);
          t695 = svmls_n_f64_x(pg1, s416, t691, 0.5);
          s440 = svmul_n_f64_x(pg1, svsub_f64_x(pg1, s425, s434), 0.8660254037844386);
          s441 = svmul_n_f64_x(pg1, svsub_f64_x(pg1, s424, s433), 0.8660254037844386);
          t696 = svadd_f64_x(pg1, t694, s440);
          t697 = svsub_f64_x(pg1, t695, s441);
          t698 = svsub_f64_x(pg1, t694, s440);
          t699 = svadd_f64_x(pg1, t695, s441);
          s458 = svmla_n_f64_x(pg1, t696, t697, 0.83909963117727981);
          s442 = svmul_n_f64_x(pg1, s458, 0.76604444311897812);
          s459 = svmls_n_f64_x(pg1, t697, t696, 0.83909963117727981);
          s443 = svmul_n_f64_x(pg1, s459, 0.76604444311897812);
          s460 = svmla_n_f64_x(pg1, t698, t699, 5.6712818196177102);
          s444 = svmul_n_f64_x(pg1, s460, 0.17364817766693033);
          s461 = svmls_n_f64_x(pg1, t699, t698, 5.6712818196177102);
          s445 = svmul_n_f64_x(pg1, s461, 0.17364817766693033);
          t700 = svadd_f64_x(pg1, s427, s436);
          t701 = svadd_f64_x(pg1, s428, s437);
          t702 = svadd_f64_x(pg1, s418, t700);
          t703 = svadd_f64_x(pg1, s419, t701);
          t704 = svmls_n_f64_x(pg1, s418, t700, 0.5);
          t705 = svmls_n_f64_x(pg1, s419, t701, 0.5);
          s446 = svmul_n_f64_x(pg1, svsub_f64_x(pg1, s428, s437), 0.8660254037844386);
          s447 = svmul_n_f64_x(pg1, svsub_f64_x(pg1, s427, s436), 0.8660254037844386);
          t706 = svadd_f64_x(pg1, t704, s446);
          t707 = svsub_f64_x(pg1, t705, s447);
          t708 = svsub_f64_x(pg1, t704, s446);
          t709 = svadd_f64_x(pg1, t705, s447);
          s462 = svmla_n_f64_x(pg1, t706, t707, 5.6712818196177102);
          s448 = svmul_n_f64_x(pg1, s462, 0.17364817766693033);
          s463 = svmls_n_f64_x(pg1, t707, t706, 5.6712818196177102);
          s449 = svmul_n_f64_x(pg1, s463, 0.17364817766693033);
          s464 = svmls_n_f64_x(pg1, t709, t708, 2.7474774194546225);
          s450 = svmul_n_f64_x(pg1, s464, 0.34202014332566871);
          s465 = svmla_n_f64_x(pg1, t708, t709, 2.7474774194546225);
          s451 = svmul_n_f64_x(pg1, s465, 0.34202014332566871);
          t710 = svadd_f64_x(pg1, t692, t702);
          t711 = svadd_f64_x(pg1, t693, t703);
          t712 = svmls_n_f64_x(pg1, t682, t710, 0.5);
          t713 = svmls_n_f64_x(pg1, t683, t711, 0.5);
          s452 = svmul_n_f64_x(pg1, svsub_f64_x(pg1, t693, t703), 0.8660254037844386);
          s453 = svmul_n_f64_x(pg1, svsub_f64_x(pg1, t692, t702), 0.8660254037844386);
          t714 = svadd_f64_x(pg1, s442, s448);
          t715 = svadd_f64_x(pg1, s443, s449);
          t716 = svmls_n_f64_x(pg1, t686, t714, 0.5);
          t717 = svmls_n_f64_x(pg1, t687, t715, 0.5);
          s454 = svmul_n_f64_x(pg1, svsub_f64_x(pg1, s443, s449), 0.8660254037844386);
          s455 = svmul_n_f64_x(pg1, svsub_f64_x(pg1, s442, s448), 0.8660254037844386);
          t718 = svadd_f64_x(pg1, s444, s450);
          t719 = svsub_f64_x(pg1, s445, s451);
          t720 = svmls_n_f64_x(pg1, t688, t718, 0.5);
          t721 = svmls_n_f64_x(pg1, t689, t719, 0.5);
          s456 = svmul_n_f64_x(pg1, svadd_f64_x(pg1, s445, s451), 0.8660254037844386);
          s457 = svmul_n_f64_x(pg1, svsub_f64_x(pg1, s444, s450), 0.8660254037844386);
          svex2_10.v0 = svadd_f64_x(pg1, t682, t710);
          svex2_10.v1 = svadd_f64_x(pg1, t683, t711);
          svst2_f64(pg1, (Y + ((2)*(k1))), svex2_10);
          svex2_11.v0 = svadd_f64_x(pg1, t686, t714);
          svex2_11.v1 = svadd_f64_x(pg1, t687, t715);
          svst2_f64(pg1, (Y + ((2)*((k1 + m1)))), svex2_11);
          svex2_12.v0 = svadd_f64_x(pg1, t688, t718);
          svex2_12.v1 = svadd_f64_x(pg1, t689, t719);
          svst2_f64(pg1, (Y + ((2)*((k1 + ((2)*(m1)))))), svex2_12);
          svex2_13.v0 = svadd_f64_x(pg1, t712, s452);
          svex2_13.v1 = svsub_f64_x(pg1, t713, s453);
          svst2_f64(pg1, (Y + ((2)*((k1 + ((3)*(m1)))))), svex2_13);
          svex2_14.v0 = svadd_f64_x(pg1, t716, s454);
          svex2_14.v1 = svsub_f64_x(pg1, t717, s455);
          svst2_f64(pg1, (Y + ((2)*((k1 + ((4)*(m1)))))), svex2_14);
          svex2_15.v0 = svadd_f64_x(pg1, t720, s456);
          svex2_15.v1 = svsub_f64_x(pg1, t721, s457);
          svst2_f64(pg1, (Y + ((2)*((k1 + ((5)*(m1)))))), svex2_15);
          svex2_16.v0 = svsub_f64_x(pg1, t712, s452);
          svex2_16.v1 = svadd_f64_x(pg1, t713, s453);
          svst2_f64(pg1, (Y + ((2)*((k1 + ((6)*(m1)))))), svex2_16);
          svex2_17.v0 = svsub_f64_x(pg1, t716, s454);
          svex2_17.v1 = svadd_f64_x(pg1, t717, s455);
          svst2_f64(pg1, (Y + ((2)*((k1 + ((7)*(m1)))))), svex2_17);
          svex2_18.v0 = svsub_f64_x(pg1, t720, s456);
          svex2_18.v1 = svadd_f64_x(pg1, t721, s457);
          svst2_f64(pg1, (Y + ((2)*((k1 + ((8)*(m1)))))), svex2_18);
          k1 += svcntd();
          pg1 = svwhilelt_b64(k1, m1);
      } while(svptest_any(svptrue_b64(), pg1));
  }
  