| 476 | } |
| 477 | |
| 478 | Status IrEmitter::HandleTupleSelect(HloInstruction* tuple_select) { |
| 479 | auto pred = tuple_select->operand(0); |
| 480 | auto on_true = tuple_select->operand(1); |
| 481 | auto on_false = tuple_select->operand(2); |
| 482 | TF_RET_CHECK(pred->shape().element_type() == PRED); |
| 483 | TF_RET_CHECK(ShapeUtil::IsScalar(pred->shape())); |
| 484 | TF_RET_CHECK(tuple_select->shape().IsTuple()); |
| 485 | llvm_ir::EmitTupleSelect(GetIrArray(*tuple_select, *tuple_select), |
| 486 | GetIrArray(*pred, *tuple_select), |
| 487 | GetBasePointer(*on_true), GetBasePointer(*on_false), |
| 488 | &b_); |
| 489 | return Status::OK(); |
| 490 | } |
| 491 | |
| 492 | namespace { |
| 493 | llvm::Value* Real(llvm::Value* x, llvm::IRBuilder<>* b) { |
nothing calls this directly
no test coverage detected