| 304 | } |
| 305 | |
| 306 | Status XlaOpKernelContext::ConstantInputAsInt64Literal(int index, |
| 307 | xla::Literal* out) { |
| 308 | xla::Literal literal; |
| 309 | TF_RETURN_IF_ERROR(ConstantInput(index, &literal)); |
| 310 | switch (literal.shape().element_type()) { |
| 311 | case xla::S32: { |
| 312 | *out = xla::Literal( |
| 313 | xla::ShapeUtil::ChangeElementType(literal.shape(), xla::S64)); |
| 314 | auto src_data = literal.data<int32>(); |
| 315 | for (int64 i = 0; i < src_data.size(); ++i) { |
| 316 | out->data<int64>()[i] = src_data[i]; |
| 317 | } |
| 318 | return Status::OK(); |
| 319 | } |
| 320 | case xla::S64: |
| 321 | *out = std::move(literal); |
| 322 | return Status::OK(); |
| 323 | |
| 324 | default: |
| 325 | return errors::InvalidArgument( |
| 326 | "Invalid argument to ConstantInputAsInt64Literal: ", |
| 327 | xla::ShapeUtil::HumanString(literal.shape())); |
| 328 | } |
| 329 | } |
| 330 | |
| 331 | Status XlaOpKernelContext::ConstantInputAsInt64Literal(absl::string_view name, |
| 332 | xla::Literal* out) { |
no test coverage detected