15bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower/* Copyright 2017 The TensorFlow Authors. All Rights Reserved.
25bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower
35bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlowerLicensed under the Apache License, Version 2.0 (the "License");
45bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFloweryou may not use this file except in compliance with the License.
55bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlowerYou may obtain a copy of the License at
65bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower
75bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower    http://www.apache.org/licenses/LICENSE-2.0
85bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower
95bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlowerUnless required by applicable law or agreed to in writing, software
105bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlowerdistributed under the License is distributed on an "AS IS" BASIS,
115bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlowerWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
125bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlowerSee the License for the specific language governing permissions and
135bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlowerlimitations under the License.
145bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower==============================================================================*/
155bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower
165bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower#include "tensorflow/compiler/xla/service/cpu/runtime_fft.h"
175bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower
185bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower#define EIGEN_USE_THREADS
195bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower
205bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower#include "tensorflow/compiler/xla/executable_run_options.h"
215bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower#include "tensorflow/compiler/xla/service/cpu/runtime_fft_impl.h"
225bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower#include "tensorflow/core/platform/dynamic_annotations.h"
235bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower#include "tensorflow/core/platform/types.h"
245bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower
255bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlowerusing tensorflow::int32;
265bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlowerusing tensorflow::int64;
275bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower
285bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlowerTF_ATTRIBUTE_NO_SANITIZE_MEMORY void __xla_cpu_runtime_EigenFft(
295bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower    const void* run_options_ptr, void* out, void* operand, int32 fft_type,
305bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower    int32 fft_rank, int64 input_batch, int64 fft_length0, int64 fft_length1,
315bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower    int64 fft_length2) {
325bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower  const xla::ExecutableRunOptions* run_options =
335bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower      static_cast<const xla::ExecutableRunOptions*>(run_options_ptr);
345bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower  tensorflow::xla::EigenFftImpl(*run_options->intra_op_thread_pool(), out,
355bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower                                operand, fft_type, fft_rank, input_batch,
365bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower                                fft_length0, fft_length1, fft_length2);
375bf26acd87d3d44183fc28cb9576cda10c0255caA. Unique TensorFlower}
38