message: Check instruction IsFusible() in gpu_fusible.cc
diff: @@ -143,7 +143,8 @@ bool IsInputFusibleScatter(const HloInstruction& instr) {
  bool IsInputFusible(const HloInstruction& instr) {
  // Input fusion only handles non-elemental reduction and scatter operations.
  - return IsInputFusibleReduction(instr) || IsInputFusibleScatter(instr);
  + return instr.IsFusible() &&
  + (IsInputFusibleReduction(instr) || IsInputFusibleScatter(instr));
  }
  bool IsLoopFusible(const HloInstruction& instr) {
  @@ -153,7 +154,8 @@ bool IsLoopFusible(const HloInstruction& instr) {
  // compute the address of the GTE at the top of the kernel. Often we know the
  // address of the GTE result statically, so we can do this without chasing any
  // pointers.
  - return (instr.IsElementwise() && instr.operand_count() > 0) ||
  + return instr.IsFusible() &&
  + ((instr.IsElementwise() && instr.operand_count() > 0) ||
  instr.opcode() == HloOpcode::kBitcast ||
  instr.opcode() == HloOpcode::kBroadcast ||
  instr.opcode() == HloOpcode::kConcatenate ||
  @@ -170,7 +172,7 @@ bool IsLoopFusible(const HloInstruction& instr) {
  instr.opcode() == HloOpcode::kReshape ||
  instr.opcode() == HloOpcode::kReverse ||
  instr.opcode() == HloOpcode::kSlice ||
  - instr.opcode() == HloOpcode::kTranspose;
  + instr.opcode() == HloOpcode::kTranspose);
  }
  bool IsFusible(const HloInstruction& instr) {
  