Skip to content

Instantly share code, notes, and snippets.

@dan-zheng
Created July 28, 2018 01:28
Show Gist options
  • Save dan-zheng/df35f867c471a61ec74cc69612487426 to your computer and use it in GitHub Desktop.
Save dan-zheng/df35f867c471a61ec74cc69612487426 to your computer and use it in GitHub Desktop.
Unexpected send/receive, scalar promotion deficiency
import TensorFlow
func test() {
for _ in 0...10 {
let x = Tensor<Float>(ones: [2, 2])
_ = x.reshaped(toShape: Tensor<Int32>([4, Int32(1 * 1)]))
// Alternative 1: literal `1` avoids send/receive.
// _ = x.reshaped(toShape: Tensor<Int32>([4, 1]))
// Alternative 2: avoiding `Int32` avoids send/receive.
// let index: Int32 = 1 * 1
// _ = x.reshaped(toShape: Tensor<Int32>([4, index]))
}
}
test()
$ swiftc -O -Xllvm -tf-dump-intermediates unexpected-send-recv.swift
--- TFDeabstraction Input: $S4main4testyyF
// test()
sil hidden @$S4main4testyyF : $@convention(thin) () -> () {
bb0:
%0 = alloc_stack $IndexingIterator<ClosedRange<Int>>, var, name "$generator" // users: %92, %24, %29
%1 = alloc_stack $ClosedRange<Int> // users: %14, %20, %26
%2 = metatype $@thin Int.Type
%3 = integer_literal $Builtin.Int64, 0 // user: %4
%4 = struct $Int (%3 : $Builtin.Int64) // user: %10
%5 = integer_literal $Builtin.Int64, 10 // user: %6
%6 = struct $Int (%5 : $Builtin.Int64) // user: %12
br bb2 // id: %7
bb1: // Preds: bb3
%8 = metatype $@thin ClosedRange<Int>.Type // user: %14
%9 = alloc_stack $Int // users: %10, %16, %14
store %4 to %9 : $*Int // id: %10
%11 = alloc_stack $Int // users: %12, %15, %14
store %6 to %11 : $*Int // id: %12
// function_ref ClosedRange.init(uncheckedBounds:)
%13 = function_ref @$SSN15uncheckedBoundsSNyxGx5lower_x5uppert_tcfC : $@convention(method) <τ_0_0 where τ_0_0 : Comparable> (@in τ_0_0, @in τ_0_0, @thin ClosedRange<τ_0_0>.Type) -> @out ClosedRange<τ_0_0> // user: %14
%14 = apply %13<Int>(%1, %9, %11, %8) : $@convention(method) <τ_0_0 where τ_0_0 : Comparable> (@in τ_0_0, @in τ_0_0, @thin ClosedRange<τ_0_0>.Type) -> @out ClosedRange<τ_0_0>
dealloc_stack %11 : $*Int // id: %15
dealloc_stack %9 : $*Int // id: %16
br bb4 // id: %17
bb2: // Preds: bb0
br bb3 // id: %18
bb3: // Preds: bb2
br bb1 // id: %19
bb4: // Preds: bb1
%20 = load %1 : $*ClosedRange<Int> // user: %22
%21 = alloc_stack $ClosedRange<Int> // users: %22, %25, %24
store %20 to %21 : $*ClosedRange<Int> // id: %22
// function_ref Collection<>.makeIterator()
%23 = function_ref @$SSlss16IndexingIteratorVyxG0B0RtzrlE04makeB0ACyF : $@convention(method) <τ_0_0 where τ_0_0 : Collection, τ_0_0.Iterator == IndexingIterator<τ_0_0>> (@in_guaranteed τ_0_0) -> @out IndexingIterator<τ_0_0> // user: %24
%24 = apply %23<ClosedRange<Int>>(%0, %21) : $@convention(method) <τ_0_0 where τ_0_0 : Collection, τ_0_0.Iterator == IndexingIterator<τ_0_0>> (@in_guaranteed τ_0_0) -> @out IndexingIterator<τ_0_0>
dealloc_stack %21 : $*ClosedRange<Int> // id: %25
dealloc_stack %1 : $*ClosedRange<Int> // id: %26
br bb5 // id: %27
bb5: // Preds: bb7 bb4
%28 = alloc_stack $Optional<Int> // users: %33, %34, %31
%29 = begin_access [modify] [static] %0 : $*IndexingIterator<ClosedRange<Int>> // users: %32, %31
// function_ref IndexingIterator.next()
%30 = function_ref @$Ss16IndexingIteratorV4next7ElementQzSgyF : $@convention(method) <τ_0_0 where τ_0_0 : Collection> (@inout IndexingIterator<τ_0_0>) -> @out Optional<τ_0_0.Element> // user: %31
%31 = apply %30<ClosedRange<Int>>(%28, %29) : $@convention(method) <τ_0_0 where τ_0_0 : Collection> (@inout IndexingIterator<τ_0_0>) -> @out Optional<τ_0_0.Element>
end_access %29 : $*IndexingIterator<ClosedRange<Int>> // id: %32
%33 = load %28 : $*Optional<Int> // user: %35
dealloc_stack %28 : $*Optional<Int> // id: %34
switch_enum %33 : $Optional<Int>, case #Optional.some!enumelt.1: bb7, case #Optional.none!enumelt: bb6 // id: %35
bb6: // Preds: bb5
br bb8 // id: %36
bb7(%37 : $Int): // Preds: bb5
%38 = metatype $@thin Tensor<Float>.Type // user: %59
%39 = metatype $@thin TensorShape.Type // user: %57
%40 = integer_literal $Builtin.Word, 2 // user: %42
// function_ref _allocateUninitializedArray<A>(_:)
%41 = function_ref @$Ss27_allocateUninitializedArrayySayxG_BptBwlF : $@convention(thin) <τ_0_0> (Builtin.Word) -> (@owned Array<τ_0_0>, Builtin.RawPointer) // user: %42
%42 = apply %41<Int32>(%40) : $@convention(thin) <τ_0_0> (Builtin.Word) -> (@owned Array<τ_0_0>, Builtin.RawPointer) // users: %46, %43, %45
%43 = tuple_extract %42 : $(Array<Int32>, Builtin.RawPointer), 0 // users: %57, %44
retain_value %43 : $Array<Int32> // id: %44
%45 = tuple_extract %42 : $(Array<Int32>, Builtin.RawPointer), 1 // user: %47
release_value %42 : $(Array<Int32>, Builtin.RawPointer) // id: %46
%47 = pointer_to_address %45 : $Builtin.RawPointer to [strict] $*Int32 // users: %50, %52
%48 = integer_literal $Builtin.Int32, 2 // user: %49
%49 = struct $Int32 (%48 : $Builtin.Int32) // user: %50
store %49 to %47 : $*Int32 // id: %50
%51 = integer_literal $Builtin.Word, 1 // user: %52
%52 = index_addr %47 : $*Int32, %51 : $Builtin.Word // user: %55
%53 = integer_literal $Builtin.Int32, 2 // user: %54
%54 = struct $Int32 (%53 : $Builtin.Int32) // user: %55
store %54 to %52 : $*Int32 // id: %55
// function_ref TensorShape.init(arrayLiteral:)
%56 = function_ref @$S10TensorFlow0A5ShapeV12arrayLiteralACs5Int32Vd_tcfC : $@convention(method) (@owned Array<Int32>, @thin TensorShape.Type) -> @owned TensorShape // user: %57
%57 = apply %56(%43, %39) : $@convention(method) (@owned Array<Int32>, @thin TensorShape.Type) -> @owned TensorShape // user: %59
// function_ref Tensor<>.init(ones:)
%58 = function_ref @$S10TensorFlow0A0VAASjRzrlE4onesACyxGAA0A5ShapeV_tcfC : $@convention(method) <τ_0_0 where τ_0_0 : Numeric, τ_0_0 : AccelerableByTensorFlow> (@owned TensorShape, @thin Tensor<τ_0_0>.Type) -> @owned Tensor<τ_0_0> // user: %59
%59 = apply %58<Float>(%57, %38) : $@convention(method) <τ_0_0 where τ_0_0 : Numeric, τ_0_0 : AccelerableByTensorFlow> (@owned TensorShape, @thin Tensor<τ_0_0>.Type) -> @owned Tensor<τ_0_0> // users: %90, %87, %60
debug_value %59 : $Tensor<Float>, let, name "x" // id: %60
%61 = metatype $@thin Tensor<Int32>.Type // user: %85
%62 = integer_literal $Builtin.Word, 2 // user: %64
// function_ref _allocateUninitializedArray<A>(_:)
%63 = function_ref @$Ss27_allocateUninitializedArrayySayxG_BptBwlF : $@convention(thin) <τ_0_0> (Builtin.Word) -> (@owned Array<τ_0_0>, Builtin.RawPointer) // user: %64
%64 = apply %63<Int32>(%62) : $@convention(thin) <τ_0_0> (Builtin.Word) -> (@owned Array<τ_0_0>, Builtin.RawPointer) // users: %68, %65, %67
%65 = tuple_extract %64 : $(Array<Int32>, Builtin.RawPointer), 0 // users: %85, %66
retain_value %65 : $Array<Int32> // id: %66
%67 = tuple_extract %64 : $(Array<Int32>, Builtin.RawPointer), 1 // user: %69
release_value %64 : $(Array<Int32>, Builtin.RawPointer) // id: %68
%69 = pointer_to_address %67 : $Builtin.RawPointer to [strict] $*Int32 // users: %72, %74
%70 = integer_literal $Builtin.Int32, 4 // user: %71
%71 = struct $Int32 (%70 : $Builtin.Int32) // user: %72
store %71 to %69 : $*Int32 // id: %72
%73 = integer_literal $Builtin.Word, 1 // user: %74
%74 = index_addr %69 : $*Int32, %73 : $Builtin.Word // user: %82
%75 = metatype $@thin Int32.Type
%76 = metatype $@thick Int32.Type // user: %82
%77 = integer_literal $Builtin.Int64, 1 // user: %78
%78 = struct $Int (%77 : $Builtin.Int64) // user: %80
%79 = alloc_stack $Int // users: %80, %83, %82
store %78 to %79 : $*Int // id: %80
// function_ref SignedInteger<>.init<A>(_:)
%81 = function_ref @$SSZss17FixedWidthIntegerRzrlEyxqd__cSzRd__lufC : $@convention(method) <τ_0_0 where τ_0_0 : FixedWidthInteger, τ_0_0 : SignedInteger><τ_1_0 where τ_1_0 : BinaryInteger> (@in τ_1_0, @thick τ_0_0.Type) -> @out τ_0_0 // user: %82
%82 = apply %81<Int32, Int>(%74, %79, %76) : $@convention(method) <τ_0_0 where τ_0_0 : FixedWidthInteger, τ_0_0 : SignedInteger><τ_1_0 where τ_1_0 : BinaryInteger> (@in τ_1_0, @thick τ_0_0.Type) -> @out τ_0_0
dealloc_stack %79 : $*Int // id: %83
// function_ref Tensor.init(_:)
%84 = function_ref @$S10TensorFlow0A0VyACyxGSayxGcfC : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@owned Array<τ_0_0>, @thin Tensor<τ_0_0>.Type) -> @owned Tensor<τ_0_0> // user: %85
%85 = apply %84<Int32>(%65, %61) : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@owned Array<τ_0_0>, @thin Tensor<τ_0_0>.Type) -> @owned Tensor<τ_0_0> // users: %88, %87
// function_ref Tensor.reshaped(toShape:)
%86 = function_ref @$S10TensorFlow0A0V8reshaped7toShapeACyxGACys5Int32VG_tF : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Tensor<Int32>, @guaranteed Tensor<τ_0_0>) -> @owned Tensor<τ_0_0> // user: %87
%87 = apply %86<Float>(%85, %59) : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Tensor<Int32>, @guaranteed Tensor<τ_0_0>) -> @owned Tensor<τ_0_0> // user: %89
release_value %85 : $Tensor<Int32> // id: %88
release_value %87 : $Tensor<Float> // id: %89
release_value %59 : $Tensor<Float> // id: %90
br bb5 // id: %91
bb8: // Preds: bb6
dealloc_stack %0 : $*IndexingIterator<ClosedRange<Int>> // id: %92
%93 = tuple () // user: %94
return %93 : $() // id: %94
} // end sil function '$S4main4testyyF'
----
--- TFDeabstraction Result: $S4main4testyyF
// test()
sil hidden @$S4main4testyyF : $@convention(thin) () -> () {
bb0:
%0 = alloc_stack $IndexingIterator<ClosedRange<Int>>, var, name "$generator" // users: %171, %23, %28
%1 = alloc_stack $ClosedRange<Int> // users: %13, %19, %25
%2 = integer_literal $Builtin.Int64, 0 // user: %3
%3 = struct $Int (%2 : $Builtin.Int64) // user: %9
%4 = integer_literal $Builtin.Int64, 10 // user: %5
%5 = struct $Int (%4 : $Builtin.Int64) // user: %11
br bb2 // id: %6
bb1: // Preds: bb3
%7 = metatype $@thin ClosedRange<Int>.Type // user: %13
%8 = alloc_stack $Int // users: %9, %15, %13
store %3 to %8 : $*Int // id: %9
%10 = alloc_stack $Int // users: %11, %14, %13
store %5 to %10 : $*Int // id: %11
// function_ref ClosedRange.init(uncheckedBounds:)
%12 = function_ref @$SSN15uncheckedBoundsSNyxGx5lower_x5uppert_tcfC : $@convention(method) <τ_0_0 where τ_0_0 : Comparable> (@in τ_0_0, @in τ_0_0, @thin ClosedRange<τ_0_0>.Type) -> @out ClosedRange<τ_0_0> // user: %13
%13 = apply %12<Int>(%1, %8, %10, %7) : $@convention(method) <τ_0_0 where τ_0_0 : Comparable> (@in τ_0_0, @in τ_0_0, @thin ClosedRange<τ_0_0>.Type) -> @out ClosedRange<τ_0_0>
dealloc_stack %10 : $*Int // id: %14
dealloc_stack %8 : $*Int // id: %15
br bb4 // id: %16
bb2: // Preds: bb0
br bb3 // id: %17
bb3: // Preds: bb2
br bb1 // id: %18
bb4: // Preds: bb1
%19 = load %1 : $*ClosedRange<Int> // user: %21
%20 = alloc_stack $ClosedRange<Int> // users: %21, %24, %23
store %19 to %20 : $*ClosedRange<Int> // id: %21
// function_ref Collection<>.makeIterator()
%22 = function_ref @$SSlss16IndexingIteratorVyxG0B0RtzrlE04makeB0ACyF : $@convention(method) <τ_0_0 where τ_0_0 : Collection, τ_0_0.Iterator == IndexingIterator<τ_0_0>> (@in_guaranteed τ_0_0) -> @out IndexingIterator<τ_0_0> // user: %23
%23 = apply %22<ClosedRange<Int>>(%0, %20) : $@convention(method) <τ_0_0 where τ_0_0 : Collection, τ_0_0.Iterator == IndexingIterator<τ_0_0>> (@in_guaranteed τ_0_0) -> @out IndexingIterator<τ_0_0>
dealloc_stack %20 : $*ClosedRange<Int> // id: %24
dealloc_stack %1 : $*ClosedRange<Int> // id: %25
br bb5 // id: %26
bb5: // Preds: bb7 bb4
%27 = alloc_stack $Optional<Int> // users: %32, %33, %30
%28 = begin_access [modify] [static] %0 : $*IndexingIterator<ClosedRange<Int>> // users: %31, %30
// function_ref IndexingIterator.next()
%29 = function_ref @$Ss16IndexingIteratorV4next7ElementQzSgyF : $@convention(method) <τ_0_0 where τ_0_0 : Collection> (@inout IndexingIterator<τ_0_0>) -> @out Optional<τ_0_0.Element> // user: %30
%30 = apply %29<ClosedRange<Int>>(%27, %28) : $@convention(method) <τ_0_0 where τ_0_0 : Collection> (@inout IndexingIterator<τ_0_0>) -> @out Optional<τ_0_0.Element>
end_access %28 : $*IndexingIterator<ClosedRange<Int>> // id: %31
%32 = load %27 : $*Optional<Int> // user: %34
dealloc_stack %27 : $*Optional<Int> // id: %33
switch_enum %32 : $Optional<Int>, case #Optional.some!enumelt.1: bb7, case #Optional.none!enumelt: bb6 // id: %34
bb6: // Preds: bb5
br bb8 // id: %35
bb7(%36 : $Int): // Preds: bb5
%37 = metatype $@thin TensorShape.Type // user: %55
%38 = integer_literal $Builtin.Word, 2 // user: %40
// function_ref _allocateUninitializedArray<A>(_:)
%39 = function_ref @$Ss27_allocateUninitializedArrayySayxG_BptBwlF : $@convention(thin) <τ_0_0> (Builtin.Word) -> (@owned Array<τ_0_0>, Builtin.RawPointer) // user: %40
%40 = apply %39<Int32>(%38) : $@convention(thin) <τ_0_0> (Builtin.Word) -> (@owned Array<τ_0_0>, Builtin.RawPointer) // users: %44, %41, %43
%41 = tuple_extract %40 : $(Array<Int32>, Builtin.RawPointer), 0 // users: %55, %42
retain_value %41 : $Array<Int32> // id: %42
%43 = tuple_extract %40 : $(Array<Int32>, Builtin.RawPointer), 1 // user: %45
release_value %40 : $(Array<Int32>, Builtin.RawPointer) // id: %44
%45 = pointer_to_address %43 : $Builtin.RawPointer to [strict] $*Int32 // users: %48, %50
%46 = integer_literal $Builtin.Int32, 2 // user: %47
%47 = struct $Int32 (%46 : $Builtin.Int32) // user: %48
store %47 to %45 : $*Int32 // id: %48
%49 = integer_literal $Builtin.Word, 1 // user: %50
%50 = index_addr %45 : $*Int32, %49 : $Builtin.Word // user: %53
%51 = integer_literal $Builtin.Int32, 2 // user: %52
%52 = struct $Int32 (%51 : $Builtin.Int32) // user: %53
store %52 to %50 : $*Int32 // id: %53
// function_ref TensorShape.init(arrayLiteral:)
%54 = function_ref @$S10TensorFlow0A5ShapeV12arrayLiteralACs5Int32Vd_tcfC : $@convention(method) (@owned Array<Int32>, @thin TensorShape.Type) -> @owned TensorShape // user: %55
%55 = apply %54(%41, %37) : $@convention(method) (@owned Array<Int32>, @thin TensorShape.Type) -> @owned TensorShape // users: %116, %112, %67, %56
retain_value %55 : $TensorShape // id: %56
%57 = alloc_stack $Float // users: %81, %65, %114
%58 = metatype $@thick Float.Type // user: %65
%59 = alloc_stack $Int64 // users: %65, %63, %66
%60 = metatype $@thick Int64.Type // user: %63
%61 = integer_literal $Builtin.Int2048, 1 // user: %63
// function_ref protocol witness for _ExpressibleByBuiltinIntegerLiteral.init(_builtinIntegerLiteral:) in conformance Int64
%62 = function_ref @$Ss5Int64Vs35_ExpressibleByBuiltinIntegerLiteralssACP08_builtineF0xBi2048__tcfCTW : $@convention(witness_method: _ExpressibleByBuiltinIntegerLiteral) (Builtin.Int2048, @thick Int64.Type) -> @out Int64 // user: %63
%63 = apply %62(%59, %61, %60) : $@convention(witness_method: _ExpressibleByBuiltinIntegerLiteral) (Builtin.Int2048, @thick Int64.Type) -> @out Int64
// function_ref protocol witness for ExpressibleByIntegerLiteral.init(integerLiteral:) in conformance Float
%64 = function_ref @$SSfs27ExpressibleByIntegerLiteralssAAP07integerD0x0cD4TypeQz_tcfCTW : $@convention(witness_method: ExpressibleByIntegerLiteral) (@in Int64, @thick Float.Type) -> @out Float // user: %65
%65 = apply %64(%57, %59, %58) : $@convention(witness_method: ExpressibleByIntegerLiteral) (@in Int64, @thick Float.Type) -> @out Float
dealloc_stack %59 : $*Int64 // id: %66
%67 = struct_extract %55 : $TensorShape, #TensorShape.dimensions // users: %79, %68
retain_value %67 : $Array<Int32> // id: %68
%69 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // users: %96, %72, %73, %78, %80, %94, %98, %110
%70 = alloc_stack $Tensor<Int32> // users: %71, %74, %77
%71 = struct_element_addr %70 : $*Tensor<Int32>, #Tensor.handle // user: %72
store %69 to %71 : $*TensorHandle<Int32> // id: %72
strong_retain %69 : $TensorHandle<Int32> // id: %73
%74 = load %70 : $*Tensor<Int32> // user: %75
%75 = struct_extract %74 : $Tensor<Int32>, #Tensor.handle // user: %76
strong_release %75 : $TensorHandle<Int32> // id: %76
dealloc_stack %70 : $*Tensor<Int32> // id: %77
strong_retain %69 : $TensorHandle<Int32> // id: %78
release_value %67 : $Array<Int32> // id: %79
strong_release %69 : $TensorHandle<Int32> // id: %80
%81 = load %57 : $*Float // user: %82
%82 = struct_extract %81 : $Float, #Float._value // user: %83
%83 = graph_op "tfc.scalarToTensor,s"(%82 : $Builtin.FPIEEE32) {__device: "/device:CPU:0"} : $TensorHandle<Float> // users: %96, %86, %87, %92, %93, %95, %97, %109
%84 = alloc_stack $Tensor<Float> // users: %85, %88, %91
%85 = struct_element_addr %84 : $*Tensor<Float>, #Tensor.handle // user: %86
store %83 to %85 : $*TensorHandle<Float> // id: %86
strong_retain %83 : $TensorHandle<Float> // id: %87
%88 = load %84 : $*Tensor<Float> // user: %89
%89 = struct_extract %88 : $Tensor<Float>, #Tensor.handle // user: %90
strong_release %89 : $TensorHandle<Float> // id: %90
dealloc_stack %84 : $*Tensor<Float> // id: %91
strong_retain %83 : $TensorHandle<Float> // id: %92
strong_release %83 : $TensorHandle<Float> // id: %93
strong_retain %69 : $TensorHandle<Int32> // id: %94
strong_retain %83 : $TensorHandle<Float> // id: %95
%96 = graph_op "Fill,i,i"(%69 : $TensorHandle<Int32>, %83 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %154, %102, %99, %103, %108, %111, %113, %115, %117, %152, %156, %169
strong_release %83 : $TensorHandle<Float> // id: %97
strong_release %69 : $TensorHandle<Int32> // id: %98
strong_retain %96 : $TensorHandle<Float> // id: %99
%100 = alloc_stack $Tensor<Float> // users: %101, %104, %107
%101 = struct_element_addr %100 : $*Tensor<Float>, #Tensor.handle // user: %102
store %96 to %101 : $*TensorHandle<Float> // id: %102
strong_retain %96 : $TensorHandle<Float> // id: %103
%104 = load %100 : $*Tensor<Float> // user: %105
%105 = struct_extract %104 : $Tensor<Float>, #Tensor.handle // user: %106
strong_release %105 : $TensorHandle<Float> // id: %106
dealloc_stack %100 : $*Tensor<Float> // id: %107
strong_release %96 : $TensorHandle<Float> // id: %108
strong_release %83 : $TensorHandle<Float> // id: %109
strong_release %69 : $TensorHandle<Int32> // id: %110
strong_retain %96 : $TensorHandle<Float> // id: %111
release_value %55 : $TensorShape // id: %112
strong_release %96 : $TensorHandle<Float> // id: %113
dealloc_stack %57 : $*Float // id: %114
strong_retain %96 : $TensorHandle<Float> // id: %115
release_value %55 : $TensorShape // id: %116
strong_release %96 : $TensorHandle<Float> // id: %117
%118 = integer_literal $Builtin.Word, 2 // user: %120
// function_ref _allocateUninitializedArray<A>(_:)
%119 = function_ref @$Ss27_allocateUninitializedArrayySayxG_BptBwlF : $@convention(thin) <τ_0_0> (Builtin.Word) -> (@owned Array<τ_0_0>, Builtin.RawPointer) // user: %120
%120 = apply %119<Int32>(%118) : $@convention(thin) <τ_0_0> (Builtin.Word) -> (@owned Array<τ_0_0>, Builtin.RawPointer) // users: %124, %121, %123
%121 = tuple_extract %120 : $(Array<Int32>, Builtin.RawPointer), 0 // users: %140, %150, %122
retain_value %121 : $Array<Int32> // id: %122
%123 = tuple_extract %120 : $(Array<Int32>, Builtin.RawPointer), 1 // user: %125
release_value %120 : $(Array<Int32>, Builtin.RawPointer) // id: %124
%125 = pointer_to_address %123 : $Builtin.RawPointer to [strict] $*Int32 // users: %128, %130
%126 = integer_literal $Builtin.Int32, 4 // user: %127
%127 = struct $Int32 (%126 : $Builtin.Int32) // user: %128
store %127 to %125 : $*Int32 // id: %128
%129 = integer_literal $Builtin.Word, 1 // user: %130
%130 = index_addr %125 : $*Int32, %129 : $Builtin.Word // user: %137
%131 = metatype $@thick Int32.Type // user: %137
%132 = integer_literal $Builtin.Int64, 1 // user: %133
%133 = struct $Int (%132 : $Builtin.Int64) // user: %135
%134 = alloc_stack $Int // users: %135, %138, %137
store %133 to %134 : $*Int // id: %135
// function_ref SignedInteger<>.init<A>(_:)
%136 = function_ref @$SSZss17FixedWidthIntegerRzrlEyxqd__cSzRd__lufC : $@convention(method) <τ_0_0 where τ_0_0 : FixedWidthInteger, τ_0_0 : SignedInteger><τ_1_0 where τ_1_0 : BinaryInteger> (@in τ_1_0, @thick τ_0_0.Type) -> @out τ_0_0 // user: %137
%137 = apply %136<Int32, Int>(%130, %134, %131) : $@convention(method) <τ_0_0 where τ_0_0 : FixedWidthInteger, τ_0_0 : SignedInteger><τ_1_0 where τ_1_0 : BinaryInteger> (@in τ_1_0, @thick τ_0_0.Type) -> @out τ_0_0
dealloc_stack %134 : $*Int // id: %138
// function_ref __tf_tensor_from_scalars_1d
%139 = function_ref @__tf_tensor_from_scalars_1d : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // user: %140
%140 = apply %139<Int32>(%121) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %154, %167, %155, %153, %151, %149, %144, %143
%141 = alloc_stack $Tensor<Int32> // users: %142, %145, %148
%142 = struct_element_addr %141 : $*Tensor<Int32>, #Tensor.handle // user: %143
store %140 to %142 : $*TensorHandle<Int32> // id: %143
strong_retain %140 : $TensorHandle<Int32> // id: %144
%145 = load %141 : $*Tensor<Int32> // user: %146
%146 = struct_extract %145 : $Tensor<Int32>, #Tensor.handle // user: %147
strong_release %146 : $TensorHandle<Int32> // id: %147
dealloc_stack %141 : $*Tensor<Int32> // id: %148
strong_retain %140 : $TensorHandle<Int32> // id: %149
release_value %121 : $Array<Int32> // id: %150
strong_release %140 : $TensorHandle<Int32> // id: %151
strong_retain %96 : $TensorHandle<Float> // id: %152
strong_retain %140 : $TensorHandle<Int32> // id: %153
%154 = graph_op "Reshape,i,i"(%96 : $TensorHandle<Float>, %140 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %160, %157, %161, %166, %168
strong_release %140 : $TensorHandle<Int32> // id: %155
strong_release %96 : $TensorHandle<Float> // id: %156
strong_retain %154 : $TensorHandle<Float> // id: %157
%158 = alloc_stack $Tensor<Float> // users: %159, %162, %165
%159 = struct_element_addr %158 : $*Tensor<Float>, #Tensor.handle // user: %160
store %154 to %159 : $*TensorHandle<Float> // id: %160
strong_retain %154 : $TensorHandle<Float> // id: %161
%162 = load %158 : $*Tensor<Float> // user: %163
%163 = struct_extract %162 : $Tensor<Float>, #Tensor.handle // user: %164
strong_release %163 : $TensorHandle<Float> // id: %164
dealloc_stack %158 : $*Tensor<Float> // id: %165
strong_release %154 : $TensorHandle<Float> // id: %166
strong_release %140 : $TensorHandle<Int32> // id: %167
strong_release %154 : $TensorHandle<Float> // id: %168
strong_release %96 : $TensorHandle<Float> // id: %169
br bb5 // id: %170
bb8: // Preds: bb6
dealloc_stack %0 : $*IndexingIterator<ClosedRange<Int>> // id: %171
%172 = tuple () // user: %173
return %172 : $() // id: %173
} // end sil function '$S4main4testyyF'
----
---- INPUT FUNCTION $S4main4testyyF ----------
// test()
sil hidden @$S4main4testyyF : $@convention(thin) () -> () {
bb0:
%0 = integer_literal $Builtin.Int64, 1 // user: %1
%1 = builtin "sitofp_Int64_FPIEEE32"(%0 : $Builtin.Int64) : $Builtin.FPIEEE32 // users: %174, %157, %140, %123, %106, %89, %72, %55, %38, %4, %21
// function_ref __tf_tensor_from_scalars_1d
%2 = function_ref @__tf_tensor_from_scalars_1d : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %184, %167, %150, %133, %116, %99, %82, %65, %48, %14, %31
%3 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // users: %7, %5
%4 = graph_op "tfc.scalarToTensor,s"(%1 : $Builtin.FPIEEE32) {__device: "/device:CPU:0"} : $TensorHandle<Float> // users: %6, %5
%5 = graph_op "Fill,i,i"(%3 : $TensorHandle<Int32>, %4 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %19, %16
strong_release %4 : $TensorHandle<Float> // id: %6
strong_release %3 : $TensorHandle<Int32> // id: %7
%8 = global_value @$S4main4testyyFTv_ : $_ContiguousArrayStorage<Int32> // users: %15, %10, %9
strong_retain %8 : $_ContiguousArrayStorage<Int32> // id: %9
%10 = unchecked_ref_cast %8 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %11
%11 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%10 : $Builtin.BridgeObject) // user: %12
%12 = struct $_ArrayBuffer<Int32> (%11 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %13
%13 = struct $Array<Int32> (%12 : $_ArrayBuffer<Int32>) // user: %14
%14 = apply %2<Int32>(%13) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %17, %16
strong_release %8 : $_ContiguousArrayStorage<Int32> // id: %15
%16 = graph_op "Reshape,i,i"(%5 : $TensorHandle<Float>, %14 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %18
strong_release %14 : $TensorHandle<Int32> // id: %17
strong_release %16 : $TensorHandle<Float> // id: %18
strong_release %5 : $TensorHandle<Float> // id: %19
%20 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // users: %24, %22
%21 = graph_op "tfc.scalarToTensor,s"(%1 : $Builtin.FPIEEE32) {__device: "/device:CPU:0"} : $TensorHandle<Float> // users: %23, %22
%22 = graph_op "Fill,i,i"(%20 : $TensorHandle<Int32>, %21 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %36, %33
strong_release %21 : $TensorHandle<Float> // id: %23
strong_release %20 : $TensorHandle<Int32> // id: %24
%25 = global_value @$S4main4testyyFTv0_ : $_ContiguousArrayStorage<Int32> // users: %32, %27, %26
strong_retain %25 : $_ContiguousArrayStorage<Int32> // id: %26
%27 = unchecked_ref_cast %25 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %28
%28 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%27 : $Builtin.BridgeObject) // user: %29
%29 = struct $_ArrayBuffer<Int32> (%28 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %30
%30 = struct $Array<Int32> (%29 : $_ArrayBuffer<Int32>) // user: %31
%31 = apply %2<Int32>(%30) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %34, %33
strong_release %25 : $_ContiguousArrayStorage<Int32> // id: %32
%33 = graph_op "Reshape,i,i"(%22 : $TensorHandle<Float>, %31 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %35
strong_release %31 : $TensorHandle<Int32> // id: %34
strong_release %33 : $TensorHandle<Float> // id: %35
strong_release %22 : $TensorHandle<Float> // id: %36
%37 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // users: %41, %39
%38 = graph_op "tfc.scalarToTensor,s"(%1 : $Builtin.FPIEEE32) {__device: "/device:CPU:0"} : $TensorHandle<Float> // users: %40, %39
%39 = graph_op "Fill,i,i"(%37 : $TensorHandle<Int32>, %38 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %53, %50
strong_release %38 : $TensorHandle<Float> // id: %40
strong_release %37 : $TensorHandle<Int32> // id: %41
%42 = global_value @$S4main4testyyFTv1_ : $_ContiguousArrayStorage<Int32> // users: %49, %44, %43
strong_retain %42 : $_ContiguousArrayStorage<Int32> // id: %43
%44 = unchecked_ref_cast %42 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %45
%45 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%44 : $Builtin.BridgeObject) // user: %46
%46 = struct $_ArrayBuffer<Int32> (%45 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %47
%47 = struct $Array<Int32> (%46 : $_ArrayBuffer<Int32>) // user: %48
%48 = apply %2<Int32>(%47) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %51, %50
strong_release %42 : $_ContiguousArrayStorage<Int32> // id: %49
%50 = graph_op "Reshape,i,i"(%39 : $TensorHandle<Float>, %48 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %52
strong_release %48 : $TensorHandle<Int32> // id: %51
strong_release %50 : $TensorHandle<Float> // id: %52
strong_release %39 : $TensorHandle<Float> // id: %53
%54 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // users: %58, %56
%55 = graph_op "tfc.scalarToTensor,s"(%1 : $Builtin.FPIEEE32) {__device: "/device:CPU:0"} : $TensorHandle<Float> // users: %57, %56
%56 = graph_op "Fill,i,i"(%54 : $TensorHandle<Int32>, %55 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %70, %67
strong_release %55 : $TensorHandle<Float> // id: %57
strong_release %54 : $TensorHandle<Int32> // id: %58
%59 = global_value @$S4main4testyyFTv2_ : $_ContiguousArrayStorage<Int32> // users: %66, %61, %60
strong_retain %59 : $_ContiguousArrayStorage<Int32> // id: %60
%61 = unchecked_ref_cast %59 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %62
%62 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%61 : $Builtin.BridgeObject) // user: %63
%63 = struct $_ArrayBuffer<Int32> (%62 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %64
%64 = struct $Array<Int32> (%63 : $_ArrayBuffer<Int32>) // user: %65
%65 = apply %2<Int32>(%64) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %68, %67
strong_release %59 : $_ContiguousArrayStorage<Int32> // id: %66
%67 = graph_op "Reshape,i,i"(%56 : $TensorHandle<Float>, %65 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %69
strong_release %65 : $TensorHandle<Int32> // id: %68
strong_release %67 : $TensorHandle<Float> // id: %69
strong_release %56 : $TensorHandle<Float> // id: %70
%71 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // users: %75, %73
%72 = graph_op "tfc.scalarToTensor,s"(%1 : $Builtin.FPIEEE32) {__device: "/device:CPU:0"} : $TensorHandle<Float> // users: %74, %73
%73 = graph_op "Fill,i,i"(%71 : $TensorHandle<Int32>, %72 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %87, %84
strong_release %72 : $TensorHandle<Float> // id: %74
strong_release %71 : $TensorHandle<Int32> // id: %75
%76 = global_value @$S4main4testyyFTv3_ : $_ContiguousArrayStorage<Int32> // users: %83, %78, %77
strong_retain %76 : $_ContiguousArrayStorage<Int32> // id: %77
%78 = unchecked_ref_cast %76 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %79
%79 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%78 : $Builtin.BridgeObject) // user: %80
%80 = struct $_ArrayBuffer<Int32> (%79 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %81
%81 = struct $Array<Int32> (%80 : $_ArrayBuffer<Int32>) // user: %82
%82 = apply %2<Int32>(%81) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %85, %84
strong_release %76 : $_ContiguousArrayStorage<Int32> // id: %83
%84 = graph_op "Reshape,i,i"(%73 : $TensorHandle<Float>, %82 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %86
strong_release %82 : $TensorHandle<Int32> // id: %85
strong_release %84 : $TensorHandle<Float> // id: %86
strong_release %73 : $TensorHandle<Float> // id: %87
%88 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // users: %92, %90
%89 = graph_op "tfc.scalarToTensor,s"(%1 : $Builtin.FPIEEE32) {__device: "/device:CPU:0"} : $TensorHandle<Float> // users: %91, %90
%90 = graph_op "Fill,i,i"(%88 : $TensorHandle<Int32>, %89 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %104, %101
strong_release %89 : $TensorHandle<Float> // id: %91
strong_release %88 : $TensorHandle<Int32> // id: %92
%93 = global_value @$S4main4testyyFTv4_ : $_ContiguousArrayStorage<Int32> // users: %100, %95, %94
strong_retain %93 : $_ContiguousArrayStorage<Int32> // id: %94
%95 = unchecked_ref_cast %93 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %96
%96 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%95 : $Builtin.BridgeObject) // user: %97
%97 = struct $_ArrayBuffer<Int32> (%96 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %98
%98 = struct $Array<Int32> (%97 : $_ArrayBuffer<Int32>) // user: %99
%99 = apply %2<Int32>(%98) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %102, %101
strong_release %93 : $_ContiguousArrayStorage<Int32> // id: %100
%101 = graph_op "Reshape,i,i"(%90 : $TensorHandle<Float>, %99 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %103
strong_release %99 : $TensorHandle<Int32> // id: %102
strong_release %101 : $TensorHandle<Float> // id: %103
strong_release %90 : $TensorHandle<Float> // id: %104
%105 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // users: %109, %107
%106 = graph_op "tfc.scalarToTensor,s"(%1 : $Builtin.FPIEEE32) {__device: "/device:CPU:0"} : $TensorHandle<Float> // users: %108, %107
%107 = graph_op "Fill,i,i"(%105 : $TensorHandle<Int32>, %106 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %121, %118
strong_release %106 : $TensorHandle<Float> // id: %108
strong_release %105 : $TensorHandle<Int32> // id: %109
%110 = global_value @$S4main4testyyFTv5_ : $_ContiguousArrayStorage<Int32> // users: %117, %112, %111
strong_retain %110 : $_ContiguousArrayStorage<Int32> // id: %111
%112 = unchecked_ref_cast %110 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %113
%113 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%112 : $Builtin.BridgeObject) // user: %114
%114 = struct $_ArrayBuffer<Int32> (%113 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %115
%115 = struct $Array<Int32> (%114 : $_ArrayBuffer<Int32>) // user: %116
%116 = apply %2<Int32>(%115) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %119, %118
strong_release %110 : $_ContiguousArrayStorage<Int32> // id: %117
%118 = graph_op "Reshape,i,i"(%107 : $TensorHandle<Float>, %116 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %120
strong_release %116 : $TensorHandle<Int32> // id: %119
strong_release %118 : $TensorHandle<Float> // id: %120
strong_release %107 : $TensorHandle<Float> // id: %121
%122 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // users: %126, %124
%123 = graph_op "tfc.scalarToTensor,s"(%1 : $Builtin.FPIEEE32) {__device: "/device:CPU:0"} : $TensorHandle<Float> // users: %125, %124
%124 = graph_op "Fill,i,i"(%122 : $TensorHandle<Int32>, %123 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %138, %135
strong_release %123 : $TensorHandle<Float> // id: %125
strong_release %122 : $TensorHandle<Int32> // id: %126
%127 = global_value @$S4main4testyyFTv6_ : $_ContiguousArrayStorage<Int32> // users: %134, %129, %128
strong_retain %127 : $_ContiguousArrayStorage<Int32> // id: %128
%129 = unchecked_ref_cast %127 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %130
%130 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%129 : $Builtin.BridgeObject) // user: %131
%131 = struct $_ArrayBuffer<Int32> (%130 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %132
%132 = struct $Array<Int32> (%131 : $_ArrayBuffer<Int32>) // user: %133
%133 = apply %2<Int32>(%132) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %136, %135
strong_release %127 : $_ContiguousArrayStorage<Int32> // id: %134
%135 = graph_op "Reshape,i,i"(%124 : $TensorHandle<Float>, %133 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %137
strong_release %133 : $TensorHandle<Int32> // id: %136
strong_release %135 : $TensorHandle<Float> // id: %137
strong_release %124 : $TensorHandle<Float> // id: %138
%139 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // users: %143, %141
%140 = graph_op "tfc.scalarToTensor,s"(%1 : $Builtin.FPIEEE32) {__device: "/device:CPU:0"} : $TensorHandle<Float> // users: %142, %141
%141 = graph_op "Fill,i,i"(%139 : $TensorHandle<Int32>, %140 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %155, %152
strong_release %140 : $TensorHandle<Float> // id: %142
strong_release %139 : $TensorHandle<Int32> // id: %143
%144 = global_value @$S4main4testyyFTv7_ : $_ContiguousArrayStorage<Int32> // users: %151, %146, %145
strong_retain %144 : $_ContiguousArrayStorage<Int32> // id: %145
%146 = unchecked_ref_cast %144 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %147
%147 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%146 : $Builtin.BridgeObject) // user: %148
%148 = struct $_ArrayBuffer<Int32> (%147 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %149
%149 = struct $Array<Int32> (%148 : $_ArrayBuffer<Int32>) // user: %150
%150 = apply %2<Int32>(%149) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %153, %152
strong_release %144 : $_ContiguousArrayStorage<Int32> // id: %151
%152 = graph_op "Reshape,i,i"(%141 : $TensorHandle<Float>, %150 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %154
strong_release %150 : $TensorHandle<Int32> // id: %153
strong_release %152 : $TensorHandle<Float> // id: %154
strong_release %141 : $TensorHandle<Float> // id: %155
%156 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // users: %160, %158
%157 = graph_op "tfc.scalarToTensor,s"(%1 : $Builtin.FPIEEE32) {__device: "/device:CPU:0"} : $TensorHandle<Float> // users: %159, %158
%158 = graph_op "Fill,i,i"(%156 : $TensorHandle<Int32>, %157 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %172, %169
strong_release %157 : $TensorHandle<Float> // id: %159
strong_release %156 : $TensorHandle<Int32> // id: %160
%161 = global_value @$S4main4testyyFTv8_ : $_ContiguousArrayStorage<Int32> // users: %168, %163, %162
strong_retain %161 : $_ContiguousArrayStorage<Int32> // id: %162
%163 = unchecked_ref_cast %161 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %164
%164 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%163 : $Builtin.BridgeObject) // user: %165
%165 = struct $_ArrayBuffer<Int32> (%164 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %166
%166 = struct $Array<Int32> (%165 : $_ArrayBuffer<Int32>) // user: %167
%167 = apply %2<Int32>(%166) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %170, %169
strong_release %161 : $_ContiguousArrayStorage<Int32> // id: %168
%169 = graph_op "Reshape,i,i"(%158 : $TensorHandle<Float>, %167 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %171
strong_release %167 : $TensorHandle<Int32> // id: %170
strong_release %169 : $TensorHandle<Float> // id: %171
strong_release %158 : $TensorHandle<Float> // id: %172
%173 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // users: %177, %175
%174 = graph_op "tfc.scalarToTensor,s"(%1 : $Builtin.FPIEEE32) {__device: "/device:CPU:0"} : $TensorHandle<Float> // users: %176, %175
%175 = graph_op "Fill,i,i"(%173 : $TensorHandle<Int32>, %174 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %189, %186
strong_release %174 : $TensorHandle<Float> // id: %176
strong_release %173 : $TensorHandle<Int32> // id: %177
%178 = global_value @$S4main4testyyFTv9_ : $_ContiguousArrayStorage<Int32> // users: %185, %180, %179
strong_retain %178 : $_ContiguousArrayStorage<Int32> // id: %179
%180 = unchecked_ref_cast %178 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %181
%181 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%180 : $Builtin.BridgeObject) // user: %182
%182 = struct $_ArrayBuffer<Int32> (%181 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %183
%183 = struct $Array<Int32> (%182 : $_ArrayBuffer<Int32>) // user: %184
%184 = apply %2<Int32>(%183) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %187, %186
strong_release %178 : $_ContiguousArrayStorage<Int32> // id: %185
%186 = graph_op "Reshape,i,i"(%175 : $TensorHandle<Float>, %184 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %188
strong_release %184 : $TensorHandle<Int32> // id: %187
strong_release %186 : $TensorHandle<Float> // id: %188
strong_release %175 : $TensorHandle<Float> // id: %189
%190 = tuple () // user: %191
return %190 : $() // id: %191
} // end sil function '$S4main4testyyF'
---- END OF INPUT FUNCTION ----------
IMPLICIT COPY TO ACCEL OF: %14 = apply %0<Int32>(%13) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %17, %16
IMPLICIT COPY TO ACCEL BY: %16 = graph_op "Reshape,i,i"(%5 : $TensorHandle<Float>, %14 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %18
/Users/danielzheng/swift-models/unexpected-send-recv.swift:5:41: warning: 'Tensor<Int32>' implicitly copied to the accelerator, use .toAccelerator() to make transfer explicit
_ = x.reshaped(toShape: Tensor<Int32>([4, Int32(1 * 1)]))
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
IMPLICIT COPY TO ACCEL OF: %31 = apply %0<Int32>(%30) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %34, %33
IMPLICIT COPY TO ACCEL BY: %33 = graph_op "Reshape,i,i"(%22 : $TensorHandle<Float>, %31 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %35
/Users/danielzheng/swift-models/unexpected-send-recv.swift:5:41: warning: 'Tensor<Int32>' implicitly copied to the accelerator, use .toAccelerator() to make transfer explicit
_ = x.reshaped(toShape: Tensor<Int32>([4, Int32(1 * 1)]))
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
IMPLICIT COPY TO ACCEL OF: %48 = apply %0<Int32>(%47) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %51, %50
IMPLICIT COPY TO ACCEL BY: %50 = graph_op "Reshape,i,i"(%39 : $TensorHandle<Float>, %48 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %52
/Users/danielzheng/swift-models/unexpected-send-recv.swift:5:41: warning: 'Tensor<Int32>' implicitly copied to the accelerator, use .toAccelerator() to make transfer explicit
_ = x.reshaped(toShape: Tensor<Int32>([4, Int32(1 * 1)]))
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
IMPLICIT COPY TO ACCEL OF: %65 = apply %0<Int32>(%64) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %68, %67
IMPLICIT COPY TO ACCEL BY: %67 = graph_op "Reshape,i,i"(%56 : $TensorHandle<Float>, %65 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %69
/Users/danielzheng/swift-models/unexpected-send-recv.swift:5:41: warning: 'Tensor<Int32>' implicitly copied to the accelerator, use .toAccelerator() to make transfer explicit
_ = x.reshaped(toShape: Tensor<Int32>([4, Int32(1 * 1)]))
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
IMPLICIT COPY TO ACCEL OF: %82 = apply %0<Int32>(%81) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %85, %84
IMPLICIT COPY TO ACCEL BY: %84 = graph_op "Reshape,i,i"(%73 : $TensorHandle<Float>, %82 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %86
/Users/danielzheng/swift-models/unexpected-send-recv.swift:5:41: warning: 'Tensor<Int32>' implicitly copied to the accelerator, use .toAccelerator() to make transfer explicit
_ = x.reshaped(toShape: Tensor<Int32>([4, Int32(1 * 1)]))
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
IMPLICIT COPY TO ACCEL OF: %99 = apply %0<Int32>(%98) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %102, %101
IMPLICIT COPY TO ACCEL BY: %101 = graph_op "Reshape,i,i"(%90 : $TensorHandle<Float>, %99 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %103
/Users/danielzheng/swift-models/unexpected-send-recv.swift:5:41: warning: 'Tensor<Int32>' implicitly copied to the accelerator, use .toAccelerator() to make transfer explicit
_ = x.reshaped(toShape: Tensor<Int32>([4, Int32(1 * 1)]))
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
IMPLICIT COPY TO ACCEL OF: %116 = apply %0<Int32>(%115) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %119, %118
IMPLICIT COPY TO ACCEL BY: %118 = graph_op "Reshape,i,i"(%107 : $TensorHandle<Float>, %116 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %120
/Users/danielzheng/swift-models/unexpected-send-recv.swift:5:41: warning: 'Tensor<Int32>' implicitly copied to the accelerator, use .toAccelerator() to make transfer explicit
_ = x.reshaped(toShape: Tensor<Int32>([4, Int32(1 * 1)]))
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
IMPLICIT COPY TO ACCEL OF: %133 = apply %0<Int32>(%132) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %136, %135
IMPLICIT COPY TO ACCEL BY: %135 = graph_op "Reshape,i,i"(%124 : $TensorHandle<Float>, %133 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %137
/Users/danielzheng/swift-models/unexpected-send-recv.swift:5:41: warning: 'Tensor<Int32>' implicitly copied to the accelerator, use .toAccelerator() to make transfer explicit
_ = x.reshaped(toShape: Tensor<Int32>([4, Int32(1 * 1)]))
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
IMPLICIT COPY TO ACCEL OF: %150 = apply %0<Int32>(%149) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %153, %152
IMPLICIT COPY TO ACCEL BY: %152 = graph_op "Reshape,i,i"(%141 : $TensorHandle<Float>, %150 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %154
/Users/danielzheng/swift-models/unexpected-send-recv.swift:5:41: warning: 'Tensor<Int32>' implicitly copied to the accelerator, use .toAccelerator() to make transfer explicit
_ = x.reshaped(toShape: Tensor<Int32>([4, Int32(1 * 1)]))
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
IMPLICIT COPY TO ACCEL OF: %167 = apply %0<Int32>(%166) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %170, %169
IMPLICIT COPY TO ACCEL BY: %169 = graph_op "Reshape,i,i"(%158 : $TensorHandle<Float>, %167 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %171
/Users/danielzheng/swift-models/unexpected-send-recv.swift:5:41: warning: 'Tensor<Int32>' implicitly copied to the accelerator, use .toAccelerator() to make transfer explicit
_ = x.reshaped(toShape: Tensor<Int32>([4, Int32(1 * 1)]))
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
IMPLICIT COPY TO ACCEL OF: %184 = apply %0<Int32>(%183) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %187, %186
IMPLICIT COPY TO ACCEL BY: %186 = graph_op "Reshape,i,i"(%175 : $TensorHandle<Float>, %184 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %188
/Users/danielzheng/swift-models/unexpected-send-recv.swift:5:41: warning: 'Tensor<Int32>' implicitly copied to the accelerator, use .toAccelerator() to make transfer explicit
_ = x.reshaped(toShape: Tensor<Int32>([4, Int32(1 * 1)]))
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
---- ANALYSIS STATE FOR FUNCTION $S4main4testyyF ----------
Tensor start point: %1 = integer_literal $Builtin.Int64, 1 // user: %2
Tensor end point: strong_release %184 : $TensorHandle<Int32> // id: %187
SIL with markings:
bb0:
// function_ref __tf_tensor_from_scalars_1d
%0 = function_ref @__tf_tensor_from_scalars_1d : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %184, %167, %150, %133, %116, %99, %82, %65, %48, %14, %31
[Move] %1 = integer_literal $Builtin.Int64, 1 // user: %2
[Move] %2 = builtin "sitofp_Int64_FPIEEE32"(%1 : $Builtin.Int64) : $Builtin.FPIEEE32 // users: %174, %157, %140, %123, %106, %89, %72, %55, %38, %4, %21
[Move] %3 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // users: %7, %5
[Move] %4 = graph_op "tfc.scalarToTensor,s"(%2 : $Builtin.FPIEEE32) {__device: "/device:CPU:0"} : $TensorHandle<Float> // users: %6, %5
[Move] %5 = graph_op "Fill,i,i"(%3 : $TensorHandle<Int32>, %4 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %19, %16
strong_release %4 : $TensorHandle<Float> // id: %6
strong_release %3 : $TensorHandle<Int32> // id: %7
%8 = global_value @$S4main4testyyFTv_ : $_ContiguousArrayStorage<Int32> // users: %15, %10, %9
strong_retain %8 : $_ContiguousArrayStorage<Int32> // id: %9
%10 = unchecked_ref_cast %8 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %11
%11 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%10 : $Builtin.BridgeObject) // user: %12
%12 = struct $_ArrayBuffer<Int32> (%11 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %13
%13 = struct $Array<Int32> (%12 : $_ArrayBuffer<Int32>) // user: %14
[Send] %14 = apply %0<Int32>(%13) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %17, %16
strong_release %8 : $_ContiguousArrayStorage<Int32> // id: %15
[Move] %16 = graph_op "Reshape,i,i"(%5 : $TensorHandle<Float>, %14 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %18
strong_release %14 : $TensorHandle<Int32> // id: %17
strong_release %16 : $TensorHandle<Float> // id: %18
strong_release %5 : $TensorHandle<Float> // id: %19
[Move] %20 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // users: %24, %22
[Move] %21 = graph_op "tfc.scalarToTensor,s"(%2 : $Builtin.FPIEEE32) {__device: "/device:CPU:0"} : $TensorHandle<Float> // users: %23, %22
[Move] %22 = graph_op "Fill,i,i"(%20 : $TensorHandle<Int32>, %21 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %36, %33
strong_release %21 : $TensorHandle<Float> // id: %23
strong_release %20 : $TensorHandle<Int32> // id: %24
%25 = global_value @$S4main4testyyFTv0_ : $_ContiguousArrayStorage<Int32> // users: %32, %27, %26
strong_retain %25 : $_ContiguousArrayStorage<Int32> // id: %26
%27 = unchecked_ref_cast %25 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %28
%28 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%27 : $Builtin.BridgeObject) // user: %29
%29 = struct $_ArrayBuffer<Int32> (%28 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %30
%30 = struct $Array<Int32> (%29 : $_ArrayBuffer<Int32>) // user: %31
[Send] %31 = apply %0<Int32>(%30) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %34, %33
strong_release %25 : $_ContiguousArrayStorage<Int32> // id: %32
[Move] %33 = graph_op "Reshape,i,i"(%22 : $TensorHandle<Float>, %31 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %35
strong_release %31 : $TensorHandle<Int32> // id: %34
strong_release %33 : $TensorHandle<Float> // id: %35
strong_release %22 : $TensorHandle<Float> // id: %36
[Move] %37 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // users: %41, %39
[Move] %38 = graph_op "tfc.scalarToTensor,s"(%2 : $Builtin.FPIEEE32) {__device: "/device:CPU:0"} : $TensorHandle<Float> // users: %40, %39
[Move] %39 = graph_op "Fill,i,i"(%37 : $TensorHandle<Int32>, %38 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %53, %50
strong_release %38 : $TensorHandle<Float> // id: %40
strong_release %37 : $TensorHandle<Int32> // id: %41
%42 = global_value @$S4main4testyyFTv1_ : $_ContiguousArrayStorage<Int32> // users: %49, %44, %43
strong_retain %42 : $_ContiguousArrayStorage<Int32> // id: %43
%44 = unchecked_ref_cast %42 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %45
%45 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%44 : $Builtin.BridgeObject) // user: %46
%46 = struct $_ArrayBuffer<Int32> (%45 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %47
%47 = struct $Array<Int32> (%46 : $_ArrayBuffer<Int32>) // user: %48
[Send] %48 = apply %0<Int32>(%47) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %51, %50
strong_release %42 : $_ContiguousArrayStorage<Int32> // id: %49
[Move] %50 = graph_op "Reshape,i,i"(%39 : $TensorHandle<Float>, %48 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %52
strong_release %48 : $TensorHandle<Int32> // id: %51
strong_release %50 : $TensorHandle<Float> // id: %52
strong_release %39 : $TensorHandle<Float> // id: %53
[Move] %54 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // users: %58, %56
[Move] %55 = graph_op "tfc.scalarToTensor,s"(%2 : $Builtin.FPIEEE32) {__device: "/device:CPU:0"} : $TensorHandle<Float> // users: %57, %56
[Move] %56 = graph_op "Fill,i,i"(%54 : $TensorHandle<Int32>, %55 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %70, %67
strong_release %55 : $TensorHandle<Float> // id: %57
strong_release %54 : $TensorHandle<Int32> // id: %58
%59 = global_value @$S4main4testyyFTv2_ : $_ContiguousArrayStorage<Int32> // users: %66, %61, %60
strong_retain %59 : $_ContiguousArrayStorage<Int32> // id: %60
%61 = unchecked_ref_cast %59 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %62
%62 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%61 : $Builtin.BridgeObject) // user: %63
%63 = struct $_ArrayBuffer<Int32> (%62 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %64
%64 = struct $Array<Int32> (%63 : $_ArrayBuffer<Int32>) // user: %65
[Send] %65 = apply %0<Int32>(%64) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %68, %67
strong_release %59 : $_ContiguousArrayStorage<Int32> // id: %66
[Move] %67 = graph_op "Reshape,i,i"(%56 : $TensorHandle<Float>, %65 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %69
strong_release %65 : $TensorHandle<Int32> // id: %68
strong_release %67 : $TensorHandle<Float> // id: %69
strong_release %56 : $TensorHandle<Float> // id: %70
[Move] %71 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // users: %75, %73
[Move] %72 = graph_op "tfc.scalarToTensor,s"(%2 : $Builtin.FPIEEE32) {__device: "/device:CPU:0"} : $TensorHandle<Float> // users: %74, %73
[Move] %73 = graph_op "Fill,i,i"(%71 : $TensorHandle<Int32>, %72 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %87, %84
strong_release %72 : $TensorHandle<Float> // id: %74
strong_release %71 : $TensorHandle<Int32> // id: %75
%76 = global_value @$S4main4testyyFTv3_ : $_ContiguousArrayStorage<Int32> // users: %83, %78, %77
strong_retain %76 : $_ContiguousArrayStorage<Int32> // id: %77
%78 = unchecked_ref_cast %76 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %79
%79 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%78 : $Builtin.BridgeObject) // user: %80
%80 = struct $_ArrayBuffer<Int32> (%79 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %81
%81 = struct $Array<Int32> (%80 : $_ArrayBuffer<Int32>) // user: %82
[Send] %82 = apply %0<Int32>(%81) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %85, %84
strong_release %76 : $_ContiguousArrayStorage<Int32> // id: %83
[Move] %84 = graph_op "Reshape,i,i"(%73 : $TensorHandle<Float>, %82 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %86
strong_release %82 : $TensorHandle<Int32> // id: %85
strong_release %84 : $TensorHandle<Float> // id: %86
strong_release %73 : $TensorHandle<Float> // id: %87
[Move] %88 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // users: %92, %90
[Move] %89 = graph_op "tfc.scalarToTensor,s"(%2 : $Builtin.FPIEEE32) {__device: "/device:CPU:0"} : $TensorHandle<Float> // users: %91, %90
[Move] %90 = graph_op "Fill,i,i"(%88 : $TensorHandle<Int32>, %89 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %104, %101
strong_release %89 : $TensorHandle<Float> // id: %91
strong_release %88 : $TensorHandle<Int32> // id: %92
%93 = global_value @$S4main4testyyFTv4_ : $_ContiguousArrayStorage<Int32> // users: %100, %95, %94
strong_retain %93 : $_ContiguousArrayStorage<Int32> // id: %94
%95 = unchecked_ref_cast %93 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %96
%96 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%95 : $Builtin.BridgeObject) // user: %97
%97 = struct $_ArrayBuffer<Int32> (%96 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %98
%98 = struct $Array<Int32> (%97 : $_ArrayBuffer<Int32>) // user: %99
[Send] %99 = apply %0<Int32>(%98) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %102, %101
strong_release %93 : $_ContiguousArrayStorage<Int32> // id: %100
[Move] %101 = graph_op "Reshape,i,i"(%90 : $TensorHandle<Float>, %99 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %103
strong_release %99 : $TensorHandle<Int32> // id: %102
strong_release %101 : $TensorHandle<Float> // id: %103
strong_release %90 : $TensorHandle<Float> // id: %104
[Move] %105 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // users: %109, %107
[Move] %106 = graph_op "tfc.scalarToTensor,s"(%2 : $Builtin.FPIEEE32) {__device: "/device:CPU:0"} : $TensorHandle<Float> // users: %108, %107
[Move] %107 = graph_op "Fill,i,i"(%105 : $TensorHandle<Int32>, %106 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %121, %118
strong_release %106 : $TensorHandle<Float> // id: %108
strong_release %105 : $TensorHandle<Int32> // id: %109
%110 = global_value @$S4main4testyyFTv5_ : $_ContiguousArrayStorage<Int32> // users: %117, %112, %111
strong_retain %110 : $_ContiguousArrayStorage<Int32> // id: %111
%112 = unchecked_ref_cast %110 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %113
%113 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%112 : $Builtin.BridgeObject) // user: %114
%114 = struct $_ArrayBuffer<Int32> (%113 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %115
%115 = struct $Array<Int32> (%114 : $_ArrayBuffer<Int32>) // user: %116
[Send] %116 = apply %0<Int32>(%115) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %119, %118
strong_release %110 : $_ContiguousArrayStorage<Int32> // id: %117
[Move] %118 = graph_op "Reshape,i,i"(%107 : $TensorHandle<Float>, %116 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %120
strong_release %116 : $TensorHandle<Int32> // id: %119
strong_release %118 : $TensorHandle<Float> // id: %120
strong_release %107 : $TensorHandle<Float> // id: %121
[Move] %122 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // users: %126, %124
[Move] %123 = graph_op "tfc.scalarToTensor,s"(%2 : $Builtin.FPIEEE32) {__device: "/device:CPU:0"} : $TensorHandle<Float> // users: %125, %124
[Move] %124 = graph_op "Fill,i,i"(%122 : $TensorHandle<Int32>, %123 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %138, %135
strong_release %123 : $TensorHandle<Float> // id: %125
strong_release %122 : $TensorHandle<Int32> // id: %126
%127 = global_value @$S4main4testyyFTv6_ : $_ContiguousArrayStorage<Int32> // users: %134, %129, %128
strong_retain %127 : $_ContiguousArrayStorage<Int32> // id: %128
%129 = unchecked_ref_cast %127 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %130
%130 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%129 : $Builtin.BridgeObject) // user: %131
%131 = struct $_ArrayBuffer<Int32> (%130 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %132
%132 = struct $Array<Int32> (%131 : $_ArrayBuffer<Int32>) // user: %133
[Send] %133 = apply %0<Int32>(%132) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %136, %135
strong_release %127 : $_ContiguousArrayStorage<Int32> // id: %134
[Move] %135 = graph_op "Reshape,i,i"(%124 : $TensorHandle<Float>, %133 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %137
strong_release %133 : $TensorHandle<Int32> // id: %136
strong_release %135 : $TensorHandle<Float> // id: %137
strong_release %124 : $TensorHandle<Float> // id: %138
[Move] %139 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // users: %143, %141
[Move] %140 = graph_op "tfc.scalarToTensor,s"(%2 : $Builtin.FPIEEE32) {__device: "/device:CPU:0"} : $TensorHandle<Float> // users: %142, %141
[Move] %141 = graph_op "Fill,i,i"(%139 : $TensorHandle<Int32>, %140 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %155, %152
strong_release %140 : $TensorHandle<Float> // id: %142
strong_release %139 : $TensorHandle<Int32> // id: %143
%144 = global_value @$S4main4testyyFTv7_ : $_ContiguousArrayStorage<Int32> // users: %151, %146, %145
strong_retain %144 : $_ContiguousArrayStorage<Int32> // id: %145
%146 = unchecked_ref_cast %144 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %147
%147 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%146 : $Builtin.BridgeObject) // user: %148
%148 = struct $_ArrayBuffer<Int32> (%147 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %149
%149 = struct $Array<Int32> (%148 : $_ArrayBuffer<Int32>) // user: %150
[Send] %150 = apply %0<Int32>(%149) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %153, %152
strong_release %144 : $_ContiguousArrayStorage<Int32> // id: %151
[Move] %152 = graph_op "Reshape,i,i"(%141 : $TensorHandle<Float>, %150 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %154
strong_release %150 : $TensorHandle<Int32> // id: %153
strong_release %152 : $TensorHandle<Float> // id: %154
strong_release %141 : $TensorHandle<Float> // id: %155
[Move] %156 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // users: %160, %158
[Move] %157 = graph_op "tfc.scalarToTensor,s"(%2 : $Builtin.FPIEEE32) {__device: "/device:CPU:0"} : $TensorHandle<Float> // users: %159, %158
[Move] %158 = graph_op "Fill,i,i"(%156 : $TensorHandle<Int32>, %157 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %172, %169
strong_release %157 : $TensorHandle<Float> // id: %159
strong_release %156 : $TensorHandle<Int32> // id: %160
%161 = global_value @$S4main4testyyFTv8_ : $_ContiguousArrayStorage<Int32> // users: %168, %163, %162
strong_retain %161 : $_ContiguousArrayStorage<Int32> // id: %162
%163 = unchecked_ref_cast %161 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %164
%164 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%163 : $Builtin.BridgeObject) // user: %165
%165 = struct $_ArrayBuffer<Int32> (%164 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %166
%166 = struct $Array<Int32> (%165 : $_ArrayBuffer<Int32>) // user: %167
[Send] %167 = apply %0<Int32>(%166) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %170, %169
strong_release %161 : $_ContiguousArrayStorage<Int32> // id: %168
[Move] %169 = graph_op "Reshape,i,i"(%158 : $TensorHandle<Float>, %167 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %171
strong_release %167 : $TensorHandle<Int32> // id: %170
strong_release %169 : $TensorHandle<Float> // id: %171
strong_release %158 : $TensorHandle<Float> // id: %172
[Move] %173 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // users: %177, %175
[Move] %174 = graph_op "tfc.scalarToTensor,s"(%2 : $Builtin.FPIEEE32) {__device: "/device:CPU:0"} : $TensorHandle<Float> // users: %176, %175
[Move] %175 = graph_op "Fill,i,i"(%173 : $TensorHandle<Int32>, %174 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // users: %189, %186
strong_release %174 : $TensorHandle<Float> // id: %176
strong_release %173 : $TensorHandle<Int32> // id: %177
%178 = global_value @$S4main4testyyFTv9_ : $_ContiguousArrayStorage<Int32> // users: %185, %180, %179
strong_retain %178 : $_ContiguousArrayStorage<Int32> // id: %179
%180 = unchecked_ref_cast %178 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %181
%181 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%180 : $Builtin.BridgeObject) // user: %182
%182 = struct $_ArrayBuffer<Int32> (%181 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %183
%183 = struct $Array<Int32> (%182 : $_ArrayBuffer<Int32>) // user: %184
[Send] %184 = apply %0<Int32>(%183) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %187, %186
strong_release %178 : $_ContiguousArrayStorage<Int32> // id: %185
[Move] %186 = graph_op "Reshape,i,i"(%175 : $TensorHandle<Float>, %184 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %188
strong_release %184 : $TensorHandle<Int32> // id: %187
strong_release %186 : $TensorHandle<Float> // id: %188
strong_release %175 : $TensorHandle<Float> // id: %189
%190 = tuple () // user: %191
return %190 : $() // id: %191
---- END OF ANALYSIS STATE FOR FUNCTION ----------
---- PARTITION STATE FOR FUNCTION $S4main4testyyF ----------
(Possibly updated) tensor end point: strong_release %184 : $TensorHandle<Int32> // id: %187
There are 0 result values:
---- END OF PARTITION STATE FOR FUNCTION ----------
--- TFPartition Accelerator Result: $S4main4testyyF.tf
// test()
sil private @$S4main4testyyF.tf : $@callee_owned () -> () {
bb0:
%0 = graph_op "Const"() {dtype$dtype: $Builtin.Int64, value$tensor: i64 1, __device: "ALL_DEVICES"} : $TensorHandle<Builtin.Int64> // user: %1
%1 = graph_op "Cast,i"(%0 : $TensorHandle<Builtin.Int64>) {DstT$dtype: $Builtin.FPIEEE32, __device: "ALL_DEVICES"} : $TensorHandle<Builtin.FPIEEE32> // users: %53, %48, %43, %38, %33, %28, %23, %18, %13, %8, %3
%2 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %4
%3 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %4
%4 = graph_op "Fill,i,i"(%2 : $TensorHandle<Int32>, %3 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %6
%5 = graph_op "tfc.RecvFromHost"() {tensorId: i32 0, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %6
%6 = graph_op "Reshape,i,i"(%4 : $TensorHandle<Float>, %5 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%7 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %9
%8 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %9
%9 = graph_op "Fill,i,i"(%7 : $TensorHandle<Int32>, %8 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %11
%10 = graph_op "tfc.RecvFromHost"() {tensorId: i32 1, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %11
%11 = graph_op "Reshape,i,i"(%9 : $TensorHandle<Float>, %10 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%12 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %14
%13 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %14
%14 = graph_op "Fill,i,i"(%12 : $TensorHandle<Int32>, %13 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %16
%15 = graph_op "tfc.RecvFromHost"() {tensorId: i32 2, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %16
%16 = graph_op "Reshape,i,i"(%14 : $TensorHandle<Float>, %15 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%17 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %19
%18 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %19
%19 = graph_op "Fill,i,i"(%17 : $TensorHandle<Int32>, %18 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %21
%20 = graph_op "tfc.RecvFromHost"() {tensorId: i32 3, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %21
%21 = graph_op "Reshape,i,i"(%19 : $TensorHandle<Float>, %20 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%22 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %24
%23 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %24
%24 = graph_op "Fill,i,i"(%22 : $TensorHandle<Int32>, %23 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %26
%25 = graph_op "tfc.RecvFromHost"() {tensorId: i32 4, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %26
%26 = graph_op "Reshape,i,i"(%24 : $TensorHandle<Float>, %25 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%27 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %29
%28 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %29
%29 = graph_op "Fill,i,i"(%27 : $TensorHandle<Int32>, %28 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %31
%30 = graph_op "tfc.RecvFromHost"() {tensorId: i32 5, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %31
%31 = graph_op "Reshape,i,i"(%29 : $TensorHandle<Float>, %30 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%32 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %34
%33 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %34
%34 = graph_op "Fill,i,i"(%32 : $TensorHandle<Int32>, %33 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %36
%35 = graph_op "tfc.RecvFromHost"() {tensorId: i32 6, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %36
%36 = graph_op "Reshape,i,i"(%34 : $TensorHandle<Float>, %35 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%37 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %39
%38 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %39
%39 = graph_op "Fill,i,i"(%37 : $TensorHandle<Int32>, %38 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %41
%40 = graph_op "tfc.RecvFromHost"() {tensorId: i32 7, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %41
%41 = graph_op "Reshape,i,i"(%39 : $TensorHandle<Float>, %40 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%42 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %44
%43 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %44
%44 = graph_op "Fill,i,i"(%42 : $TensorHandle<Int32>, %43 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %46
%45 = graph_op "tfc.RecvFromHost"() {tensorId: i32 8, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %46
%46 = graph_op "Reshape,i,i"(%44 : $TensorHandle<Float>, %45 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%47 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %49
%48 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %49
%49 = graph_op "Fill,i,i"(%47 : $TensorHandle<Int32>, %48 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %51
%50 = graph_op "tfc.RecvFromHost"() {tensorId: i32 9, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %51
%51 = graph_op "Reshape,i,i"(%49 : $TensorHandle<Float>, %50 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%52 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %54
%53 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %54
%54 = graph_op "Fill,i,i"(%52 : $TensorHandle<Int32>, %53 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %56
%55 = graph_op "tfc.RecvFromHost"() {tensorId: i32 10, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %56
%56 = graph_op "Reshape,i,i"(%54 : $TensorHandle<Float>, %55 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%57 = tuple () // user: %58
return %57 : $() // id: %58
} // end sil function '$S4main4testyyF.tf'
----
--- XLA CFG Canonicalize: $S4main4testyyF.tf
block bb0
--- XLA CFG Canonicalize end
----
--- TFDevicePartition Cross Device Tensor Transfer Annotation Result: $S4main4testyyF.tf
// test()
sil private @$S4main4testyyF.tf : $@callee_owned () -> () {
bb0:
%0 = graph_op "Const"() {dtype$dtype: $Builtin.Int64, value$tensor: i64 1, __device: "ALL_DEVICES"} : $TensorHandle<Builtin.Int64> // user: %1
%1 = graph_op "Cast,i"(%0 : $TensorHandle<Builtin.Int64>) {DstT$dtype: $Builtin.FPIEEE32, __device: "ALL_DEVICES"} : $TensorHandle<Builtin.FPIEEE32> // users: %53, %48, %43, %38, %33, %28, %23, %18, %13, %8, %3
%2 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %4
%3 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %4
%4 = graph_op "Fill,i,i"(%2 : $TensorHandle<Int32>, %3 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %6
%5 = graph_op "tfc.RecvFromHost"() {tensorId: i32 0, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %6
%6 = graph_op "Reshape,i,i"(%4 : $TensorHandle<Float>, %5 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%7 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %9
%8 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %9
%9 = graph_op "Fill,i,i"(%7 : $TensorHandle<Int32>, %8 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %11
%10 = graph_op "tfc.RecvFromHost"() {tensorId: i32 1, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %11
%11 = graph_op "Reshape,i,i"(%9 : $TensorHandle<Float>, %10 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%12 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %14
%13 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %14
%14 = graph_op "Fill,i,i"(%12 : $TensorHandle<Int32>, %13 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %16
%15 = graph_op "tfc.RecvFromHost"() {tensorId: i32 2, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %16
%16 = graph_op "Reshape,i,i"(%14 : $TensorHandle<Float>, %15 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%17 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %19
%18 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %19
%19 = graph_op "Fill,i,i"(%17 : $TensorHandle<Int32>, %18 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %21
%20 = graph_op "tfc.RecvFromHost"() {tensorId: i32 3, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %21
%21 = graph_op "Reshape,i,i"(%19 : $TensorHandle<Float>, %20 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%22 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %24
%23 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %24
%24 = graph_op "Fill,i,i"(%22 : $TensorHandle<Int32>, %23 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %26
%25 = graph_op "tfc.RecvFromHost"() {tensorId: i32 4, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %26
%26 = graph_op "Reshape,i,i"(%24 : $TensorHandle<Float>, %25 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%27 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %29
%28 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %29
%29 = graph_op "Fill,i,i"(%27 : $TensorHandle<Int32>, %28 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %31
%30 = graph_op "tfc.RecvFromHost"() {tensorId: i32 5, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %31
%31 = graph_op "Reshape,i,i"(%29 : $TensorHandle<Float>, %30 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%32 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %34
%33 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %34
%34 = graph_op "Fill,i,i"(%32 : $TensorHandle<Int32>, %33 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %36
%35 = graph_op "tfc.RecvFromHost"() {tensorId: i32 6, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %36
%36 = graph_op "Reshape,i,i"(%34 : $TensorHandle<Float>, %35 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%37 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %39
%38 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %39
%39 = graph_op "Fill,i,i"(%37 : $TensorHandle<Int32>, %38 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %41
%40 = graph_op "tfc.RecvFromHost"() {tensorId: i32 7, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %41
%41 = graph_op "Reshape,i,i"(%39 : $TensorHandle<Float>, %40 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%42 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %44
%43 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %44
%44 = graph_op "Fill,i,i"(%42 : $TensorHandle<Int32>, %43 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %46
%45 = graph_op "tfc.RecvFromHost"() {tensorId: i32 8, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %46
%46 = graph_op "Reshape,i,i"(%44 : $TensorHandle<Float>, %45 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%47 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %49
%48 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %49
%49 = graph_op "Fill,i,i"(%47 : $TensorHandle<Int32>, %48 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %51
%50 = graph_op "tfc.RecvFromHost"() {tensorId: i32 9, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %51
%51 = graph_op "Reshape,i,i"(%49 : $TensorHandle<Float>, %50 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%52 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %54
%53 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %54
%54 = graph_op "Fill,i,i"(%52 : $TensorHandle<Int32>, %53 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %56
%55 = graph_op "tfc.RecvFromHost"() {tensorId: i32 10, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %56
%56 = graph_op "Reshape,i,i"(%54 : $TensorHandle<Float>, %55 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%57 = tuple () // user: %58
return %57 : $() // id: %58
} // end sil function '$S4main4testyyF.tf'
----
--- TFDevicePartition Per-Device Function Extraction Result: $S4main4testyyF.tf_CPU.device_partition
// test()
sil private @$S4main4testyyF.tf_CPU.device_partition : $@callee_owned () -> () {
bb0:
%0 = graph_op "Const"() {dtype$dtype: $Builtin.Int64, value$tensor: i64 1, __device: "ALL_DEVICES"} : $TensorHandle<Builtin.Int64> // user: %1
%1 = graph_op "Cast,i"(%0 : $TensorHandle<Builtin.Int64>) {DstT$dtype: $Builtin.FPIEEE32, __device: "ALL_DEVICES"} : $TensorHandle<Builtin.FPIEEE32> // users: %53, %48, %43, %38, %33, %28, %23, %18, %13, %8, %3
%2 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %4
%3 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %4
%4 = graph_op "Fill,i,i"(%2 : $TensorHandle<Int32>, %3 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %6
%5 = graph_op "tfc.RecvFromHost"() {tensorId: i32 0, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %6
%6 = graph_op "Reshape,i,i"(%4 : $TensorHandle<Float>, %5 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%7 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %9
%8 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %9
%9 = graph_op "Fill,i,i"(%7 : $TensorHandle<Int32>, %8 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %11
%10 = graph_op "tfc.RecvFromHost"() {tensorId: i32 1, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %11
%11 = graph_op "Reshape,i,i"(%9 : $TensorHandle<Float>, %10 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%12 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %14
%13 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %14
%14 = graph_op "Fill,i,i"(%12 : $TensorHandle<Int32>, %13 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %16
%15 = graph_op "tfc.RecvFromHost"() {tensorId: i32 2, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %16
%16 = graph_op "Reshape,i,i"(%14 : $TensorHandle<Float>, %15 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%17 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %19
%18 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %19
%19 = graph_op "Fill,i,i"(%17 : $TensorHandle<Int32>, %18 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %21
%20 = graph_op "tfc.RecvFromHost"() {tensorId: i32 3, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %21
%21 = graph_op "Reshape,i,i"(%19 : $TensorHandle<Float>, %20 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%22 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %24
%23 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %24
%24 = graph_op "Fill,i,i"(%22 : $TensorHandle<Int32>, %23 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %26
%25 = graph_op "tfc.RecvFromHost"() {tensorId: i32 4, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %26
%26 = graph_op "Reshape,i,i"(%24 : $TensorHandle<Float>, %25 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%27 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %29
%28 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %29
%29 = graph_op "Fill,i,i"(%27 : $TensorHandle<Int32>, %28 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %31
%30 = graph_op "tfc.RecvFromHost"() {tensorId: i32 5, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %31
%31 = graph_op "Reshape,i,i"(%29 : $TensorHandle<Float>, %30 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%32 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %34
%33 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %34
%34 = graph_op "Fill,i,i"(%32 : $TensorHandle<Int32>, %33 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %36
%35 = graph_op "tfc.RecvFromHost"() {tensorId: i32 6, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %36
%36 = graph_op "Reshape,i,i"(%34 : $TensorHandle<Float>, %35 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%37 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %39
%38 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %39
%39 = graph_op "Fill,i,i"(%37 : $TensorHandle<Int32>, %38 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %41
%40 = graph_op "tfc.RecvFromHost"() {tensorId: i32 7, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %41
%41 = graph_op "Reshape,i,i"(%39 : $TensorHandle<Float>, %40 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%42 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %44
%43 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %44
%44 = graph_op "Fill,i,i"(%42 : $TensorHandle<Int32>, %43 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %46
%45 = graph_op "tfc.RecvFromHost"() {tensorId: i32 8, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %46
%46 = graph_op "Reshape,i,i"(%44 : $TensorHandle<Float>, %45 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%47 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %49
%48 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %49
%49 = graph_op "Fill,i,i"(%47 : $TensorHandle<Int32>, %48 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %51
%50 = graph_op "tfc.RecvFromHost"() {tensorId: i32 9, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %51
%51 = graph_op "Reshape,i,i"(%49 : $TensorHandle<Float>, %50 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%52 = graph_op "Const"() {dtype: $Int32, value$tensor: [$Int32: (i32 2), (i32 2)], value$shape: [$Int32: i32 2], __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %54
%53 = unchecked_ref_cast %1 : $TensorHandle<Builtin.FPIEEE32> to $TensorHandle<Float> // user: %54
%54 = graph_op "Fill,i,i"(%52 : $TensorHandle<Int32>, %53 : $TensorHandle<Float>) {T: $Float, index_type: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float> // user: %56
%55 = graph_op "tfc.RecvFromHost"() {tensorId: i32 10, __device: "/device:CPU:0"} : $TensorHandle<Int32> // user: %56
%56 = graph_op "Reshape,i,i"(%54 : $TensorHandle<Float>, %55 : $TensorHandle<Int32>) {T: $Float, Tshape: $Int32, __device: "/device:CPU:0"} : $TensorHandle<Float>
%57 = tuple () // user: %58
return %57 : $() // id: %58
} // end sil function '$S4main4testyyF.tf_CPU.device_partition'
----
--- TFPartition Host Result: $S4main4testyyF
// test()
sil hidden @$S4main4testyyF : $@convention(thin) () -> () {
bb0:
// function_ref __tf_tensor_from_scalars_1d
%0 = function_ref @__tf_tensor_from_scalars_1d : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %157, %144, %131, %118, %105, %92, %79, %66, %53, %27, %40
%1 = string_literal bytes "0A92010A0C6669666F5F71756575655F30120B4649464F51756575655632220D2F6465766963653A4350553A302A1D0A0B7368617265645F6E616D65120E120C6669666F5F71756575655F302A0E0A086361706163697479120218012A0F0A09636F6E7461696E6572120212002A180A0F636F6D706F6E656E745F747970657312050A033201032A0C0A0673686170657312020A000A3F0A146172675F74656E736F725F656E71756575655F30120B506C616365686F6C6465722A0D0A05736861706512043A0218012A0B0A056474797065120230030A8A010A146669666F5F71756575655F656E71756575655F30120E5175657565456E717565756556321A0C6669666F5F71756575655F301A146172675F74656E736F725F656E71756575655F30220D2F6465766963653A4350553A302A190A0A74696D656F75745F6D73120B18FFFFFFFFFFFFFFFFFF012A140A0B54636F6D706F6E656E747312050A033201030A92010A0C6669666F5F71756575655F31120B4649464F51756575655632220D2F6465766963653A4350553A302A1D0A0B7368617265645F6E616D65120E120C6669666F5F71756575655F312A0E0A086361706163697479120218012A0F0A09636F6E7461696E6572120212002A180A0F636F6D706F6E656E745F747970657312050A033201032A0C0A0673686170657312020A000A3F0A146172675F74656E736F725F656E71756575655F31120B506C616365686F6C6465722A0B0A056474797065120230032A0D0A05736861706512043A0218010A8A010A146669666F5F71756575655F656E71756575655F31120E5175657565456E717565756556321A0C6669666F5F71756575655F311A146172675F74656E736F725F656E71756575655F31220D2F6465766963653A4350553A302A190A0A74696D656F75745F6D73120B18FFFFFFFFFFFFFFFFFF012A140A0B54636F6D706F6E656E747312050A033201030A92010A0C6669666F5F71756575655F32120B4649464F51756575655632220D2F6465766963653A4350553A302A0E0A086361706163697479120218012A0F0A09636F6E7461696E6572120212002A180A0F636F6D706F6E656E745F747970657312050A033201032A0C0A0673686170657312020A002A1D0A0B7368617265645F6E616D65120E120C6669666F5F71756575655F320A3F0A146172675F74656E736F725F656E71756575655F32120B506C616365686F6C6465722A0B0A056474797065120230032A0D0A05736861706512043A0218010A8A010A146669666F5F71756575655F656E71756575655F32120E5175657565456E717565756556321A0C6669666F5F71756575655F321A146172675F74656E736F725F656E71756575655F32220D2F6465766963653A4350553A302A190A0A74696D656F75745F6D73120B18FFFFFFFFFFFFFFFFFF012A140A0B54636F6D706F6E656E747312050A033201030A92010A0C6669666F5F71756575655F33120B4649464F51756575655632220D2F6465766963653A4350553A302A0E0A086361706163697479120218012A0F0A09636F6E7461696E6572120212002A180A0F636F6D706F6E656E745F747970657312050A033201032A0C0A0673686170657312020A002A1D0A0B7368617265645F6E616D65120E120C6669666F5F71756575655F330A3F0A146172675F74656E736F725F656E71756575655F33120B506C616365686F6C6465722A0D0A05736861706512043A0218012A0B0A056474797065120230030A8A010A146669666F5F71756575655F656E71756575655F33120E5175657565456E717565756556321A0C6669666F5F71756575655F331A146172675F74656E736F725F656E71756575655F33220D2F6465766963653A4350553A302A190A0A74696D656F75745F6D73120B18FFFFFFFFFFFFFFFFFF012A140A0B54636F6D706F6E656E747312050A033201030A92010A0C6669666F5F71756575655F34120B4649464F51756575655632220D2F6465766963653A4350553A302A1D0A0B7368617265645F6E616D65120E120C6669666F5F71756575655F342A0E0A086361706163697479120218012A0F0A09636F6E7461696E6572120212002A180A0F636F6D706F6E656E745F747970657312050A033201032A0C0A0673686170657312020A000A3F0A146172675F74656E736F725F656E71756575655F34120B506C616365686F6C6465722A0B0A056474797065120230032A0D0A05736861706512043A0218010A8A010A146669666F5F71756575655F656E71756575655F34120E5175657565456E717565756556321A0C6669666F5F71756575655F341A146172675F74656E736F725F656E71756575655F34220D2F6465766963653A4350553A302A190A0A74696D656F75745F6D73120B18FFFFFFFFFFFFFFFFFF012A140A0B54636F6D706F6E656E747312050A033201030A92010A0C6669666F5F71756575655F35120B4649464F51756575655632220D2F6465766963653A4350553A302A0E0A086361706163697479120218012A0F0A09636F6E7461696E6572120212002A180A0F636F6D706F6E656E745F747970657312050A033201032A0C0A0673686170657312020A002A1D0A0B7368617265645F6E616D65120E120C6669666F5F71756575655F350A3F0A146172675F74656E736F725F656E71756575655F35120B506C616365686F6C6465722A0B0A056474797065120230032A0D0A05736861706512043A0218010A8A010A146669666F5F71756575655F656E71756575655F35120E5175657565456E717565756556321A0C6669666F5F71756575655F351A146172675F74656E736F725F656E71756575655F35220D2F6465766963653A4350553A302A190A0A74696D656F75745F6D73120B18FFFFFFFFFFFFFFFFFF012A140A0B54636F6D706F6E656E747312050A033201030A92010A0C6669666F5F71756575655F36120B4649464F51756575655632220D2F6465766963653A4350553A302A0C0A0673686170657312020A002A1D0A0B7368617265645F6E616D65120E120C6669666F5F71756575655F362A0E0A086361706163697479120218012A0F0A09636F6E7461696E6572120212002A180A0F636F6D706F6E656E745F747970657312050A033201030A3F0A146172675F74656E736F725F656E71756575655F36120B506C616365686F6C6465722A0D0A05736861706512043A0218012A0B0A056474797065120230030A8A010A146669666F5F71756575655F656E71756575655F36120E5175657565456E717565756556321A0C6669666F5F71756575655F361A146172675F74656E736F725F656E71756575655F36220D2F6465766963653A4350553A302A190A0A74696D656F75745F6D73120B18FFFFFFFFFFFFFFFFFF012A140A0B54636F6D706F6E656E747312050A033201030A92010A0C6669666F5F71756575655F37120B4649464F51756575655632220D2F6465766963653A4350553A302A0F0A09636F6E7461696E6572120212002A180A0F636F6D706F6E656E745F747970657312050A033201032A0C0A0673686170657312020A002A1D0A0B7368617265645F6E616D65120E120C6669666F5F71756575655F372A0E0A086361706163697479120218010A3F0A146172675F74656E736F725F656E71756575655F37120B506C616365686F6C6465722A0B0A056474797065120230032A0D0A05736861706512043A0218010A8A010A146669666F5F71756575655F656E71756575655F37120E5175657565456E717565756556321A0C6669666F5F71756575655F371A146172675F74656E736F725F656E71756575655F37220D2F6465766963653A4350553A302A190A0A74696D656F75745F6D73120B18FFFFFFFFFFFFFFFFFF012A140A0B54636F6D706F6E656E747312050A033201030A92010A0C6669666F5F71756575655F38120B4649464F51756575655632220D2F6465766963653A4350553A302A0E0A086361706163697479120218012A0F0A09636F6E7461696E6572120212002A180A0F636F6D706F6E656E745F747970657312050A033201032A0C0A0673686170657312020A002A1D0A0B7368617265645F6E616D65120E120C6669666F5F71756575655F380A3F0A146172675F74656E736F725F656E71756575655F38120B506C616365686F6C6465722A0B0A056474797065120230032A0D0A05736861706512043A0218010A8A010A146669666F5F71756575655F656E71756575655F38120E5175657565456E717565756556321A0C6669666F5F71756575655F381A146172675F74656E736F725F656E71756575655F38220D2F6465766963653A4350553A302A190A0A74696D656F75745F6D73120B18FFFFFFFFFFFFFFFFFF012A140A0B54636F6D706F6E656E747312050A033201030A92010A0C6669666F5F71756575655F39120B4649464F51756575655632220D2F6465766963653A4350553A302A0F0A09636F6E7461696E6572120212002A180A0F636F6D706F6E656E745F747970657312050A033201032A0C0A0673686170657312020A002A1D0A0B7368617265645F6E616D65120E120C6669666F5F71756575655F392A0E0A086361706163697479120218010A3F0A146172675F74656E736F725F656E71756575655F39120B506C616365686F6C6465722A0B0A056474797065120230032A0D0A05736861706512043A0218010A8A010A146669666F5F71756575655F656E71756575655F39120E5175657565456E717565756556321A0C6669666F5F71756575655F391A146172675F74656E736F725F656E71756575655F39220D2F6465766963653A4350553A302A190A0A74696D656F75745F6D73120B18FFFFFFFFFFFFFFFFFF012A140A0B54636F6D706F6E656E747312050A033201030A94010A0D6669666F5F71756575655F3130120B4649464F51756575655632220D2F6465766963653A4350553A302A1E0A0B7368617265645F6E616D65120F120D6669666F5F71756575655F31302A0E0A086361706163697479120218012A0F0A09636F6E7461696E6572120212002A180A0F636F6D706F6E656E745F747970657312050A033201032A0C0A0673686170657312020A000A400A156172675F74656E736F725F656E71756575655F3130120B506C616365686F6C6465722A0B0A056474797065120230032A0D0A05736861706512043A0218010A8D010A156669666F5F71756575655F656E71756575655F3130120E5175657565456E717565756556321A0D6669666F5F71756575655F31301A156172675F74656E736F725F656E71756575655F3130220D2F6465766963653A4350553A302A190A0A74696D656F75745F6D73120B18FFFFFFFFFFFFFFFFFF012A140A0B54636F6D706F6E656E747312050A033201030A530A1A7466635F66756E635F53346D61696E34746573747979462E7466122653346D61696E34746573747979462E74665F4350552E6465766963655F706172746974696F6E220D2F6465766963653A4350553A3012843B0A813B0A2B0A2653346D61696E34746573747979462E74665F4350552E6465766963655F706172746974696F6E8801011A540A1B6F702F746573742E2E2E322E365F2F6465766963655F4350555F301205436F6E7374220D2F6465766963653A4350553A302A120A0576616C756512094207080912005201012A0B0A056474797065120230091A720A1D6F702F746573742E2E5F312E322E365F2F6465766963655F4350555F301204436173741A246F702F746573742E2E2E322E365F2F6465766963655F4350555F303A6F75747075743A30220D2F6465766963653A4350553A302A0A0A0453726354120230092A0A0A0444737454120230011A610A1D6F702F746573742E2E5F322E322E365F2F6465766963655F4350555F301205436F6E7374220D2F6465766963653A4350553A302A1D0A0576616C7565121442120803120412020802220802000000020000002A0B0A056474797065120230031A8D010A106F705F2F6465766963655F4350555F30120446696C6C1A266F702F746573742E2E5F322E322E365F2F6465766963655F4350555F303A6F75747075743A301A216F702F746573742E2E5F312E322E365F2F6465766963655F4350555F303A793A30220D2F6465766963653A4350553A302A070A0154120230012A100A0A696E6465785F74797065120230031A92010A0C6669666F5F71756575655F30120B4649464F51756575655632220D2F6465766963653A4350553A302A1D0A0B7368617265645F6E616D65120E120C6669666F5F71756575655F302A0E0A086361706163697479120218012A180A0F636F6D706F6E656E745F747970657312050A033201032A0F0A09636F6E7461696E6572120212002A0C0A0673686170657312020A001A81010A146669666F5F71756575655F646571756575655F30120E51756575654465717565756556321A156669666F5F71756575655F303A68616E646C653A30220D2F6465766963653A4350553A302A180A0F636F6D706F6E656E745F747970657312050A033201032A190A0A74696D656F75745F6D73120B18FFFFFFFFFFFFFFFFFF011A81010A126F705F2F6465766963655F4350555F305F301207526573686170651A196F705F2F6465766963655F4350555F303A6F75747075743A301A216669666F5F71756575655F646571756575655F303A636F6D706F6E656E74733A30220D2F6465766963653A4350553A302A070A0154120230012A0C0A06547368617065120230031A560A126F705F2F6465766963655F4350555F305F311205436F6E7374220D2F6465766963653A4350553A302A1D0A0576616C7565121442120803120412020802220802000000020000002A0B0A056474797065120230031A84010A126F705F2F6465766963655F4350555F305F32120446696C6C1A1B6F705F2F6465766963655F4350555F305F313A6F75747075743A301A216F702F746573742E2E5F312E322E365F2F6465766963655F4350555F303A793A30220D2F6465766963653A4350553A302A070A0154120230012A100A0A696E6465785F74797065120230031A92010A0C6669666F5F71756575655F31120B4649464F51756575655632220D2F6465766963653A4350553A302A0E0A086361706163697479120218012A180A0F636F6D706F6E656E745F747970657312050A033201032A0F0A09636F6E7461696E6572120212002A0C0A0673686170657312020A002A1D0A0B7368617265645F6E616D65120E120C6669666F5F71756575655F311A98010A146669666F5F71756575655F646571756575655F31120E51756575654465717565756556321A156669666F5F71756575655F313A68616E646C653A301A155E6669666F5F71756575655F646571756575655F30220D2F6465766963653A4350553A302A180A0F636F6D706F6E656E745F747970657312050A033201032A190A0A74696D656F75745F6D73120B18FFFFFFFFFFFFFFFFFF011A83010A126F705F2F6465766963655F4350555F305F331207526573686170651A1B6F705F2F6465766963655F4350555F305F323A6F75747075743A301A216669666F5F71756575655F646571756575655F313A636F6D706F6E656E74733A30220D2F6465766963653A4350553A302A070A0154120230012A0C0A06547368617065120230031A560A126F705F2F6465766963655F4350555F305F341205436F6E7374220D2F6465766963653A4350553A302A1D0A0576616C7565121442120803120412020802220802000000020000002A0B0A056474797065120230031A84010A126F705F2F6465766963655F4350555F305F35120446696C6C1A1B6F705F2F6465766963655F4350555F305F343A6F75747075743A301A216F702F746573742E2E5F312E322E365F2F6465766963655F4350555F303A793A30220D2F6465766963653A4350553A302A070A0154120230012A100A0A696E6465785F74797065120230031A92010A0C6669666F5F71756575655F32120B4649464F51756575655632220D2F6465766963653A4350553A302A1D0A0B7368617265645F6E616D65120E120C6669666F5F71756575655F322A0E0A086361706163697479120218012A180A0F636F6D706F6E656E745F747970657312050A033201032A0F0A09636F6E7461696E6572120212002A0C0A0673686170657312020A001A98010A146669666F5F71756575655F646571756575655F32120E51756575654465717565756556321A156669666F5F71756575655F323A68616E646C653A301A155E6669666F5F71756575655F646571756575655F31220D2F6465766963653A4350553A302A190A0A74696D656F75745F6D73120B18FFFFFFFFFFFFFFFFFF012A180A0F636F6D706F6E656E745F747970657312050A033201031A83010A126F705F2F6465766963655F4350555F305F361207526573686170651A1B6F705F2F6465766963655F4350555F305F353A6F75747075743A301A216669666F5F71756575655F646571756575655F323A636F6D706F6E656E74733A30220D2F6465766963653A4350553A302A0C0A06547368617065120230032A070A0154120230011A560A126F705F2F6465766963655F4350555F305F371205436F6E7374220D2F6465766963653A4350553A302A1D0A0576616C7565121442120803120412020802220802000000020000002A0B0A056474797065120230031A84010A126F705F2F6465766963655F4350555F305F38120446696C6C1A1B6F705F2F6465766963655F4350555F305F373A6F75747075743A301A216F702F746573742E2E5F312E322E365F2F6465766963655F4350555F303A793A30220D2F6465766963653A4350553A302A070A0154120230012A100A0A696E6465785F74797065120230031A92010A0C6669666F5F71756575655F33120B4649464F51756575655632220D2F6465766963653A4350553A302A0E0A086361706163697479120218012A180A0F636F6D706F6E656E745F747970657312050A033201032A0F0A09636F6E7461696E6572120212002A0C0A0673686170657312020A002A1D0A0B7368617265645F6E616D65120E120C6669666F5F71756575655F331A98010A146669666F5F71756575655F646571756575655F33120E51756575654465717565756556321A156669666F5F71756575655F333A68616E646C653A301A155E6669666F5F71756575655F646571756575655F32220D2F6465766963653A4350553A302A180A0F636F6D706F6E656E745F747970657312050A033201032A190A0A74696D656F75745F6D73120B18FFFFFFFFFFFFFFFFFF011A83010A126F705F2F6465766963655F4350555F305F391207526573686170651A1B6F705F2F6465766963655F4350555F305F383A6F75747075743A301A216669666F5F71756575655F646571756575655F333A636F6D706F6E656E74733A30220D2F6465766963653A4350553A302A070A0154120230012A0C0A06547368617065120230031A570A136F705F2F6465766963655F4350555F305F31301205436F6E7374220D2F6465766963653A4350553A302A1D0A0576616C7565121442120803120412020802220802000000020000002A0B0A056474797065120230031A86010A136F705F2F6465766963655F4350555F305F3131120446696C6C1A1C6F705F2F6465766963655F4350555F305F31303A6F75747075743A301A216F702F746573742E2E5F312E322E365F2F6465766963655F4350555F303A793A30220D2F6465766963653A4350553A302A070A0154120230012A100A0A696E6465785F74797065120230031A92010A0C6669666F5F71756575655F34120B4649464F51756575655632220D2F6465766963653A4350553A302A0C0A0673686170657312020A002A1D0A0B7368617265645F6E616D65120E120C6669666F5F71756575655F342A0E0A086361706163697479120218012A180A0F636F6D706F6E656E745F747970657312050A033201032A0F0A09636F6E7461696E6572120212001A98010A146669666F5F71756575655F646571756575655F34120E51756575654465717565756556321A156669666F5F71756575655F343A68616E646C653A301A155E6669666F5F71756575655F646571756575655F33220D2F6465766963653A4350553A302A180A0F636F6D706F6E656E745F747970657312050A033201032A190A0A74696D656F75745F6D73120B18FFFFFFFFFFFFFFFFFF011A85010A136F705F2F6465766963655F4350555F305F31321207526573686170651A1C6F705F2F6465766963655F4350555F305F31313A6F75747075743A301A216669666F5F71756575655F646571756575655F343A636F6D706F6E656E74733A30220D2F6465766963653A4350553A302A070A0154120230012A0C0A06547368617065120230031A570A136F705F2F6465766963655F4350555F305F31331205436F6E7374220D2F6465766963653A4350553A302A1D0A0576616C7565121442120803120412020802220802000000020000002A0B0A056474797065120230031A86010A136F705F2F6465766963655F4350555F305F3134120446696C6C1A1C6F705F2F6465766963655F4350555F305F31333A6F75747075743A301A216F702F746573742E2E5F312E322E365F2F6465766963655F4350555F303A793A30220D2F6465766963653A4350553A302A070A0154120230012A100A0A696E6465785F74797065120230031A92010A0C6669666F5F71756575655F35120B4649464F51756575655632220D2F6465766963653A4350553A302A180A0F636F6D706F6E656E745F747970657312050A033201032A0F0A09636F6E7461696E6572120212002A0C0A0673686170657312020A002A1D0A0B7368617265645F6E616D65120E120C6669666F5F71756575655F352A0E0A086361706163697479120218011A98010A146669666F5F71756575655F646571756575655F35120E51756575654465717565756556321A156669666F5F71756575655F353A68616E646C653A301A155E6669666F5F71756575655F646571756575655F34220D2F6465766963653A4350553A302A180A0F636F6D706F6E656E745F747970657312050A033201032A190A0A74696D656F75745F6D73120B18FFFFFFFFFFFFFFFFFF011A85010A136F705F2F6465766963655F4350555F305F31351207526573686170651A1C6F705F2F6465766963655F4350555F305F31343A6F75747075743A301A216669666F5F71756575655F646571756575655F353A636F6D706F6E656E74733A30220D2F6465766963653A4350553A302A070A0154120230012A0C0A06547368617065120230031A570A136F705F2F6465766963655F4350555F305F31361205436F6E7374220D2F6465766963653A4350553A302A1D0A0576616C7565121442120803120412020802220802000000020000002A0B0A056474797065120230031A86010A136F705F2F6465766963655F4350555F305F3137120446696C6C1A1C6F705F2F6465766963655F4350555F305F31363A6F75747075743A301A216F702F746573742E2E5F312E322E365F2F6465766963655F4350555F303A793A30220D2F6465766963653A4350553A302A100A0A696E6465785F74797065120230032A070A0154120230011A92010A0C6669666F5F71756575655F36120B4649464F51756575655632220D2F6465766963653A4350553A302A0E0A086361706163697479120218012A180A0F636F6D706F6E656E745F747970657312050A033201032A0F0A09636F6E7461696E6572120212002A0C0A0673686170657312020A002A1D0A0B7368617265645F6E616D65120E120C6669666F5F71756575655F361A98010A146669666F5F71756575655F646571756575655F36120E51756575654465717565756556321A156669666F5F71756575655F363A68616E646C653A301A155E6669666F5F71756575655F646571756575655F35220D2F6465766963653A4350553A302A180A0F636F6D706F6E656E745F747970657312050A033201032A190A0A74696D656F75745F6D73120B18FFFFFFFFFFFFFFFFFF011A85010A136F705F2F6465766963655F4350555F305F31381207526573686170651A1C6F705F2F6465766963655F4350555F305F31373A6F75747075743A301A216669666F5F71756575655F646571756575655F363A636F6D706F6E656E74733A30220D2F6465766963653A4350553A302A070A0154120230012A0C0A06547368617065120230031A570A136F705F2F6465766963655F4350555F305F31391205436F6E7374220D2F6465766963653A4350553A302A1D0A0576616C7565121442120803120412020802220802000000020000002A0B0A056474797065120230031A86010A136F705F2F6465766963655F4350555F305F3230120446696C6C1A1C6F705F2F6465766963655F4350555F305F31393A6F75747075743A301A216F702F746573742E2E5F312E322E365F2F6465766963655F4350555F303A793A30220D2F6465766963653A4350553A302A070A0154120230012A100A0A696E6465785F74797065120230031A92010A0C6669666F5F71756575655F37120B4649464F51756575655632220D2F6465766963653A4350553A302A1D0A0B7368617265645F6E616D65120E120C6669666F5F71756575655F372A0E0A086361706163697479120218012A180A0F636F6D706F6E656E745F747970657312050A033201032A0F0A09636F6E7461696E6572120212002A0C0A0673686170657312020A001A98010A146669666F5F71756575655F646571756575655F37120E51756575654465717565756556321A156669666F5F71756575655F373A68616E646C653A301A155E6669666F5F71756575655F646571756575655F36220D2F6465766963653A4350553A302A180A0F636F6D706F6E656E745F747970657312050A033201032A190A0A74696D656F75745F6D73120B18FFFFFFFFFFFFFFFFFF011A85010A136F705F2F6465766963655F4350555F305F32311207526573686170651A1C6F705F2F6465766963655F4350555F305F32303A6F75747075743A301A216669666F5F71756575655F646571756575655F373A636F6D706F6E656E74733A30220D2F6465766963653A4350553A302A070A0154120230012A0C0A06547368617065120230031A570A136F705F2F6465766963655F4350555F305F32321205436F6E7374220D2F6465766963653A4350553A302A1D0A0576616C7565121442120803120412020802220802000000020000002A0B0A056474797065120230031A86010A136F705F2F6465766963655F4350555F305F3233120446696C6C1A1C6F705F2F6465766963655F4350555F305F32323A6F75747075743A301A216F702F746573742E2E5F312E322E365F2F6465766963655F4350555F303A793A30220D2F6465766963653A4350553A302A070A0154120230012A100A0A696E6465785F74797065120230031A92010A0C6669666F5F71756575655F38120B4649464F51756575655632220D2F6465766963653A4350553A302A1D0A0B7368617265645F6E616D65120E120C6669666F5F71756575655F382A0E0A086361706163697479120218012A180A0F636F6D706F6E656E745F747970657312050A033201032A0F0A09636F6E7461696E6572120212002A0C0A0673686170657312020A001A98010A146669666F5F71756575655F646571756575655F38120E51756575654465717565756556321A156669666F5F71756575655F383A68616E646C653A301A155E6669666F5F71756575655F646571756575655F37220D2F6465766963653A4350553A302A180A0F636F6D706F6E656E745F747970657312050A033201032A190A0A74696D656F75745F6D73120B18FFFFFFFFFFFFFFFFFF011A85010A136F705F2F6465766963655F4350555F305F32341207526573686170651A1C6F705F2F6465766963655F4350555F305F32333A6F75747075743A301A216669666F5F71756575655F646571756575655F383A636F6D706F6E656E74733A30220D2F6465766963653A4350553A302A070A0154120230012A0C0A06547368617065120230031A570A136F705F2F6465766963655F4350555F305F32351205436F6E7374220D2F6465766963653A4350553A302A1D0A0576616C7565121442120803120412020802220802000000020000002A0B0A056474797065120230031A86010A136F705F2F6465766963655F4350555F305F3236120446696C6C1A1C6F705F2F6465766963655F4350555F305F32353A6F75747075743A301A216F702F746573742E2E5F312E322E365F2F6465766963655F4350555F303A793A30220D2F6465766963653A4350553A302A070A0154120230012A100A0A696E6465785F74797065120230031A92010A0C6669666F5F71756575655F39120B4649464F51756575655632220D2F6465766963653A4350553A302A180A0F636F6D706F6E656E745F747970657312050A033201032A0F0A09636F6E7461696E6572120212002A0C0A0673686170657312020A002A1D0A0B7368617265645F6E616D65120E120C6669666F5F71756575655F392A0E0A086361706163697479120218011A98010A146669666F5F71756575655F646571756575655F39120E51756575654465717565756556321A156669666F5F71756575655F393A68616E646C653A301A155E6669666F5F71756575655F646571756575655F38220D2F6465766963653A4350553A302A180A0F636F6D706F6E656E745F747970657312050A033201032A190A0A74696D656F75745F6D73120B18FFFFFFFFFFFFFFFFFF011A85010A136F705F2F6465766963655F4350555F305F32371207526573686170651A1C6F705F2F6465766963655F4350555F305F32363A6F75747075743A301A216669666F5F71756575655F646571756575655F393A636F6D706F6E656E74733A30220D2F6465766963653A4350553A302A0C0A06547368617065120230032A070A0154120230011A570A136F705F2F6465766963655F4350555F305F32381205436F6E7374220D2F6465766963653A4350553A302A1D0A0576616C7565121442120803120412020802220802000000020000002A0B0A056474797065120230031A86010A136F705F2F6465766963655F4350555F305F3239120446696C6C1A1C6F705F2F6465766963655F4350555F305F32383A6F75747075743A301A216F702F746573742E2E5F312E322E365F2F6465766963655F4350555F303A793A30220D2F6465766963653A4350553A302A070A0154120230012A100A0A696E6465785F74797065120230031A94010A0D6669666F5F71756575655F3130120B4649464F51756575655632220D2F6465766963653A4350553A302A1E0A0B7368617265645F6E616D65120F120D6669666F5F71756575655F31302A0E0A086361706163697479120218012A180A0F636F6D706F6E656E745F747970657312050A033201032A0F0A09636F6E7461696E6572120212002A0C0A0673686170657312020A001A9A010A156669666F5F71756575655F646571756575655F3130120E51756575654465717565756556321A166669666F5F71756575655F31303A68616E646C653A301A155E6669666F5F71756575655F646571756575655F39220D2F6465766963653A4350553A302A180A0F636F6D706F6E656E745F747970657312050A033201032A190A0A74696D656F75745F6D73120B18FFFFFFFFFFFFFFFFFF011A86010A136F705F2F6465766963655F4350555F305F33301207526573686170651A1C6F705F2F6465766963655F4350555F305F32393A6F75747075743A301A226669666F5F71756575655F646571756575655F31303A636F6D706F6E656E74733A30220D2F6465766963653A4350553A302A070A0154120230012A0C0A06547368617065120230032204081A100C" // user: %5
%2 = integer_literal $Builtin.Int64, 11561 // user: %7
%3 = string_literal utf8 "S4main4testyyF.tf" // user: %6
%4 = integer_literal $Builtin.Int64, 0 // user: %8
%5 = struct $UnsafeRawPointer (%1 : $Builtin.RawPointer) // user: %18
%6 = struct $UnsafePointer<Int8> (%3 : $Builtin.RawPointer) // user: %18
%7 = struct $Int (%2 : $Builtin.Int64) // user: %18
%8 = struct $Int (%4 : $Builtin.Int64) // user: %18
%9 = alloc_stack $OpaquePointer // users: %20, %10
%10 = begin_access [read] [static] %9 : $*OpaquePointer // users: %19, %11
%11 = address_to_pointer %10 : $*OpaquePointer to $Builtin.RawPointer // user: %12
%12 = struct $UnsafePointer<OpaquePointer> (%11 : $Builtin.RawPointer) // user: %18
%13 = integer_literal $Builtin.Int64, 0 // user: %14
%14 = struct $Int (%13 : $Builtin.Int64) // user: %18
%15 = integer_literal $Builtin.Int64, 0 // user: %16
%16 = struct $Int (%15 : $Builtin.Int64) // users: %168, %18
// function_ref _swift_tfc_StartTensorComputation
%17 = function_ref @_swift_tfc_StartTensorComputation : $@convention(thin) (UnsafeRawPointer, Int, UnsafePointer<Int8>, UnsafePointer<OpaquePointer>, Int, Int, Int) -> @owned _TensorComputation // user: %18
%18 = apply %17(%5, %7, %6, %12, %14, %8, %16) : $@convention(thin) (UnsafeRawPointer, Int, UnsafePointer<Int8>, UnsafePointer<OpaquePointer>, Int, Int, Int) -> @owned _TensorComputation // users: %161, %148, %135, %122, %109, %96, %83, %70, %57, %44, %31, %168
end_access %10 : $*OpaquePointer // id: %19
dealloc_stack %9 : $*OpaquePointer // id: %20
%21 = global_value @$S4main4testyyFTv_ : $_ContiguousArrayStorage<Int32> // users: %32, %23, %22
strong_retain %21 : $_ContiguousArrayStorage<Int32> // id: %22
%23 = unchecked_ref_cast %21 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %24
%24 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%23 : $Builtin.BridgeObject) // user: %25
%25 = struct $_ArrayBuffer<Int32> (%24 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %26
%26 = struct $Array<Int32> (%25 : $_ArrayBuffer<Int32>) // user: %27
%27 = apply %0<Int32>(%26) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %31, %33
%28 = integer_literal $Builtin.Int64, 0 // user: %29
%29 = struct $Int (%28 : $Builtin.Int64) // user: %31
// function_ref TensorHandle.sendToAccelerator(_:_:)
%30 = function_ref @$S10TensorFlow0A6HandleC17sendToAcceleratoryyAA01_A11ComputationC_SitF : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed _TensorComputation, Int, @guaranteed TensorHandle<τ_0_0>) -> () // user: %31
%31 = apply %30<Int32>(%18, %29, %27) : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed _TensorComputation, Int, @guaranteed TensorHandle<τ_0_0>) -> ()
strong_release %21 : $_ContiguousArrayStorage<Int32> // id: %32
strong_release %27 : $TensorHandle<Int32> // id: %33
%34 = global_value @$S4main4testyyFTv0_ : $_ContiguousArrayStorage<Int32> // users: %45, %36, %35
strong_retain %34 : $_ContiguousArrayStorage<Int32> // id: %35
%36 = unchecked_ref_cast %34 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %37
%37 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%36 : $Builtin.BridgeObject) // user: %38
%38 = struct $_ArrayBuffer<Int32> (%37 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %39
%39 = struct $Array<Int32> (%38 : $_ArrayBuffer<Int32>) // user: %40
%40 = apply %0<Int32>(%39) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %44, %46
%41 = integer_literal $Builtin.Int64, 1 // user: %42
%42 = struct $Int (%41 : $Builtin.Int64) // user: %44
// function_ref TensorHandle.sendToAccelerator(_:_:)
%43 = function_ref @$S10TensorFlow0A6HandleC17sendToAcceleratoryyAA01_A11ComputationC_SitF : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed _TensorComputation, Int, @guaranteed TensorHandle<τ_0_0>) -> () // user: %44
%44 = apply %43<Int32>(%18, %42, %40) : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed _TensorComputation, Int, @guaranteed TensorHandle<τ_0_0>) -> ()
strong_release %34 : $_ContiguousArrayStorage<Int32> // id: %45
strong_release %40 : $TensorHandle<Int32> // id: %46
%47 = global_value @$S4main4testyyFTv1_ : $_ContiguousArrayStorage<Int32> // users: %58, %49, %48
strong_retain %47 : $_ContiguousArrayStorage<Int32> // id: %48
%49 = unchecked_ref_cast %47 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %50
%50 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%49 : $Builtin.BridgeObject) // user: %51
%51 = struct $_ArrayBuffer<Int32> (%50 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %52
%52 = struct $Array<Int32> (%51 : $_ArrayBuffer<Int32>) // user: %53
%53 = apply %0<Int32>(%52) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %57, %59
%54 = integer_literal $Builtin.Int64, 2 // user: %55
%55 = struct $Int (%54 : $Builtin.Int64) // user: %57
// function_ref TensorHandle.sendToAccelerator(_:_:)
%56 = function_ref @$S10TensorFlow0A6HandleC17sendToAcceleratoryyAA01_A11ComputationC_SitF : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed _TensorComputation, Int, @guaranteed TensorHandle<τ_0_0>) -> () // user: %57
%57 = apply %56<Int32>(%18, %55, %53) : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed _TensorComputation, Int, @guaranteed TensorHandle<τ_0_0>) -> ()
strong_release %47 : $_ContiguousArrayStorage<Int32> // id: %58
strong_release %53 : $TensorHandle<Int32> // id: %59
%60 = global_value @$S4main4testyyFTv2_ : $_ContiguousArrayStorage<Int32> // users: %71, %62, %61
strong_retain %60 : $_ContiguousArrayStorage<Int32> // id: %61
%62 = unchecked_ref_cast %60 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %63
%63 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%62 : $Builtin.BridgeObject) // user: %64
%64 = struct $_ArrayBuffer<Int32> (%63 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %65
%65 = struct $Array<Int32> (%64 : $_ArrayBuffer<Int32>) // user: %66
%66 = apply %0<Int32>(%65) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %70, %72
%67 = integer_literal $Builtin.Int64, 3 // user: %68
%68 = struct $Int (%67 : $Builtin.Int64) // user: %70
// function_ref TensorHandle.sendToAccelerator(_:_:)
%69 = function_ref @$S10TensorFlow0A6HandleC17sendToAcceleratoryyAA01_A11ComputationC_SitF : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed _TensorComputation, Int, @guaranteed TensorHandle<τ_0_0>) -> () // user: %70
%70 = apply %69<Int32>(%18, %68, %66) : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed _TensorComputation, Int, @guaranteed TensorHandle<τ_0_0>) -> ()
strong_release %60 : $_ContiguousArrayStorage<Int32> // id: %71
strong_release %66 : $TensorHandle<Int32> // id: %72
%73 = global_value @$S4main4testyyFTv3_ : $_ContiguousArrayStorage<Int32> // users: %84, %75, %74
strong_retain %73 : $_ContiguousArrayStorage<Int32> // id: %74
%75 = unchecked_ref_cast %73 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %76
%76 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%75 : $Builtin.BridgeObject) // user: %77
%77 = struct $_ArrayBuffer<Int32> (%76 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %78
%78 = struct $Array<Int32> (%77 : $_ArrayBuffer<Int32>) // user: %79
%79 = apply %0<Int32>(%78) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %83, %85
%80 = integer_literal $Builtin.Int64, 4 // user: %81
%81 = struct $Int (%80 : $Builtin.Int64) // user: %83
// function_ref TensorHandle.sendToAccelerator(_:_:)
%82 = function_ref @$S10TensorFlow0A6HandleC17sendToAcceleratoryyAA01_A11ComputationC_SitF : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed _TensorComputation, Int, @guaranteed TensorHandle<τ_0_0>) -> () // user: %83
%83 = apply %82<Int32>(%18, %81, %79) : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed _TensorComputation, Int, @guaranteed TensorHandle<τ_0_0>) -> ()
strong_release %73 : $_ContiguousArrayStorage<Int32> // id: %84
strong_release %79 : $TensorHandle<Int32> // id: %85
%86 = global_value @$S4main4testyyFTv4_ : $_ContiguousArrayStorage<Int32> // users: %97, %88, %87
strong_retain %86 : $_ContiguousArrayStorage<Int32> // id: %87
%88 = unchecked_ref_cast %86 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %89
%89 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%88 : $Builtin.BridgeObject) // user: %90
%90 = struct $_ArrayBuffer<Int32> (%89 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %91
%91 = struct $Array<Int32> (%90 : $_ArrayBuffer<Int32>) // user: %92
%92 = apply %0<Int32>(%91) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %96, %98
%93 = integer_literal $Builtin.Int64, 5 // user: %94
%94 = struct $Int (%93 : $Builtin.Int64) // user: %96
// function_ref TensorHandle.sendToAccelerator(_:_:)
%95 = function_ref @$S10TensorFlow0A6HandleC17sendToAcceleratoryyAA01_A11ComputationC_SitF : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed _TensorComputation, Int, @guaranteed TensorHandle<τ_0_0>) -> () // user: %96
%96 = apply %95<Int32>(%18, %94, %92) : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed _TensorComputation, Int, @guaranteed TensorHandle<τ_0_0>) -> ()
strong_release %86 : $_ContiguousArrayStorage<Int32> // id: %97
strong_release %92 : $TensorHandle<Int32> // id: %98
%99 = global_value @$S4main4testyyFTv5_ : $_ContiguousArrayStorage<Int32> // users: %110, %101, %100
strong_retain %99 : $_ContiguousArrayStorage<Int32> // id: %100
%101 = unchecked_ref_cast %99 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %102
%102 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%101 : $Builtin.BridgeObject) // user: %103
%103 = struct $_ArrayBuffer<Int32> (%102 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %104
%104 = struct $Array<Int32> (%103 : $_ArrayBuffer<Int32>) // user: %105
%105 = apply %0<Int32>(%104) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %109, %111
%106 = integer_literal $Builtin.Int64, 6 // user: %107
%107 = struct $Int (%106 : $Builtin.Int64) // user: %109
// function_ref TensorHandle.sendToAccelerator(_:_:)
%108 = function_ref @$S10TensorFlow0A6HandleC17sendToAcceleratoryyAA01_A11ComputationC_SitF : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed _TensorComputation, Int, @guaranteed TensorHandle<τ_0_0>) -> () // user: %109
%109 = apply %108<Int32>(%18, %107, %105) : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed _TensorComputation, Int, @guaranteed TensorHandle<τ_0_0>) -> ()
strong_release %99 : $_ContiguousArrayStorage<Int32> // id: %110
strong_release %105 : $TensorHandle<Int32> // id: %111
%112 = global_value @$S4main4testyyFTv6_ : $_ContiguousArrayStorage<Int32> // users: %123, %114, %113
strong_retain %112 : $_ContiguousArrayStorage<Int32> // id: %113
%114 = unchecked_ref_cast %112 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %115
%115 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%114 : $Builtin.BridgeObject) // user: %116
%116 = struct $_ArrayBuffer<Int32> (%115 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %117
%117 = struct $Array<Int32> (%116 : $_ArrayBuffer<Int32>) // user: %118
%118 = apply %0<Int32>(%117) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %122, %124
%119 = integer_literal $Builtin.Int64, 7 // user: %120
%120 = struct $Int (%119 : $Builtin.Int64) // user: %122
// function_ref TensorHandle.sendToAccelerator(_:_:)
%121 = function_ref @$S10TensorFlow0A6HandleC17sendToAcceleratoryyAA01_A11ComputationC_SitF : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed _TensorComputation, Int, @guaranteed TensorHandle<τ_0_0>) -> () // user: %122
%122 = apply %121<Int32>(%18, %120, %118) : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed _TensorComputation, Int, @guaranteed TensorHandle<τ_0_0>) -> ()
strong_release %112 : $_ContiguousArrayStorage<Int32> // id: %123
strong_release %118 : $TensorHandle<Int32> // id: %124
%125 = global_value @$S4main4testyyFTv7_ : $_ContiguousArrayStorage<Int32> // users: %136, %127, %126
strong_retain %125 : $_ContiguousArrayStorage<Int32> // id: %126
%127 = unchecked_ref_cast %125 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %128
%128 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%127 : $Builtin.BridgeObject) // user: %129
%129 = struct $_ArrayBuffer<Int32> (%128 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %130
%130 = struct $Array<Int32> (%129 : $_ArrayBuffer<Int32>) // user: %131
%131 = apply %0<Int32>(%130) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %135, %137
%132 = integer_literal $Builtin.Int64, 8 // user: %133
%133 = struct $Int (%132 : $Builtin.Int64) // user: %135
// function_ref TensorHandle.sendToAccelerator(_:_:)
%134 = function_ref @$S10TensorFlow0A6HandleC17sendToAcceleratoryyAA01_A11ComputationC_SitF : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed _TensorComputation, Int, @guaranteed TensorHandle<τ_0_0>) -> () // user: %135
%135 = apply %134<Int32>(%18, %133, %131) : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed _TensorComputation, Int, @guaranteed TensorHandle<τ_0_0>) -> ()
strong_release %125 : $_ContiguousArrayStorage<Int32> // id: %136
strong_release %131 : $TensorHandle<Int32> // id: %137
%138 = global_value @$S4main4testyyFTv8_ : $_ContiguousArrayStorage<Int32> // users: %149, %140, %139
strong_retain %138 : $_ContiguousArrayStorage<Int32> // id: %139
%140 = unchecked_ref_cast %138 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %141
%141 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%140 : $Builtin.BridgeObject) // user: %142
%142 = struct $_ArrayBuffer<Int32> (%141 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %143
%143 = struct $Array<Int32> (%142 : $_ArrayBuffer<Int32>) // user: %144
%144 = apply %0<Int32>(%143) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %148, %150
%145 = integer_literal $Builtin.Int64, 9 // user: %146
%146 = struct $Int (%145 : $Builtin.Int64) // user: %148
// function_ref TensorHandle.sendToAccelerator(_:_:)
%147 = function_ref @$S10TensorFlow0A6HandleC17sendToAcceleratoryyAA01_A11ComputationC_SitF : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed _TensorComputation, Int, @guaranteed TensorHandle<τ_0_0>) -> () // user: %148
%148 = apply %147<Int32>(%18, %146, %144) : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed _TensorComputation, Int, @guaranteed TensorHandle<τ_0_0>) -> ()
strong_release %138 : $_ContiguousArrayStorage<Int32> // id: %149
strong_release %144 : $TensorHandle<Int32> // id: %150
%151 = global_value @$S4main4testyyFTv9_ : $_ContiguousArrayStorage<Int32> // users: %162, %153, %152
strong_retain %151 : $_ContiguousArrayStorage<Int32> // id: %152
%153 = unchecked_ref_cast %151 : $_ContiguousArrayStorage<Int32> to $Builtin.BridgeObject // user: %154
%154 = struct $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore> (%153 : $Builtin.BridgeObject) // user: %155
%155 = struct $_ArrayBuffer<Int32> (%154 : $_BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>) // user: %156
%156 = struct $Array<Int32> (%155 : $_ArrayBuffer<Int32>) // user: %157
%157 = apply %0<Int32>(%156) : $@convention(thin) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed Array<τ_0_0>) -> @owned TensorHandle<τ_0_0> // users: %161, %171
%158 = integer_literal $Builtin.Int64, 10 // user: %159
%159 = struct $Int (%158 : $Builtin.Int64) // user: %161
// function_ref TensorHandle.sendToAccelerator(_:_:)
%160 = function_ref @$S10TensorFlow0A6HandleC17sendToAcceleratoryyAA01_A11ComputationC_SitF : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed _TensorComputation, Int, @guaranteed TensorHandle<τ_0_0>) -> () // user: %161
%161 = apply %160<Int32>(%18, %159, %157) : $@convention(method) <τ_0_0 where τ_0_0 : AccelerableByTensorFlow> (@guaranteed _TensorComputation, Int, @guaranteed TensorHandle<τ_0_0>) -> ()
strong_release %151 : $_ContiguousArrayStorage<Int32> // id: %162
%163 = alloc_stack $OpaquePointer // users: %170, %164
%164 = begin_access [modify] [static] %163 : $*OpaquePointer // users: %169, %165
%165 = address_to_pointer %164 : $*OpaquePointer to $Builtin.RawPointer // user: %166
%166 = struct $UnsafeMutablePointer<OpaquePointer> (%165 : $Builtin.RawPointer) // user: %168
// function_ref _swift_tfc_FinishTensorComputation
%167 = function_ref @_swift_tfc_FinishTensorComputation : $@convention(thin) (@guaranteed _TensorComputation, UnsafeMutablePointer<OpaquePointer>, Int) -> () // user: %168
%168 = apply %167(%18, %166, %16) : $@convention(thin) (@guaranteed _TensorComputation, UnsafeMutablePointer<OpaquePointer>, Int) -> ()
end_access %164 : $*OpaquePointer // id: %169
dealloc_stack %163 : $*OpaquePointer // id: %170
strong_release %157 : $TensorHandle<Int32> // id: %171
%172 = tuple () // user: %173
return %172 : $() // id: %173
} // end sil function '$S4main4testyyF'
---
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment