mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
40 lines
1.4 KiB
Plaintext
40 lines
1.4 KiB
Plaintext
// RUN: %target-sil-opt -enable-sil-verify-all %s -onone-simplification -simplify-instruction=tuple_extract | %FileCheck %s
|
|
|
|
// REQUIRES: swift_in_compiler
|
|
|
|
import Swift
|
|
import Builtin
|
|
|
|
// CHECK-LABEL: sil @tuple_extract_first_field
|
|
// CHECK: return %0
|
|
// CHECK: } // end sil function 'tuple_extract_first_field'
|
|
sil @tuple_extract_first_field : $@convention(thin) (@owned String, @guaranteed String) -> @owned String {
|
|
bb0(%0 : $String, %1 : $String):
|
|
%2 = tuple (%0 : $String, %1 : $String)
|
|
%3 = tuple_extract %2 : $(String, String), 0
|
|
return %3 : $String
|
|
}
|
|
|
|
// CHECK-LABEL: sil @tuple_extract_second_field
|
|
// CHECK: return %1
|
|
// CHECK: } // end sil function 'tuple_extract_second_field'
|
|
sil @tuple_extract_second_field : $@convention(thin) (@guaranteed String, @owned String) -> @owned String {
|
|
bb0(%0 : $String, %1 : $String):
|
|
%2 = tuple (%0 : $String, %1 : $String)
|
|
%3 = tuple_extract %2 : $(String, String), 1
|
|
return %3 : $String
|
|
}
|
|
|
|
// CHECK-LABEL: sil [ossa] @tuple_extract_ossa
|
|
// CHECK: %2 = copy_value %0
|
|
// CHECK: return %2
|
|
// CHECK: } // end sil function 'tuple_extract_ossa'
|
|
sil [ossa] @tuple_extract_ossa : $@convention(thin) (@guaranteed String, @guaranteed String) -> @owned String {
|
|
bb0(%0 : @guaranteed $String, %1 : @guaranteed $String):
|
|
%2 = tuple (%0 : $String, %1 : $String)
|
|
%3 = tuple_extract %2 : $(String, String), 0
|
|
%4 = copy_value %3 : $String
|
|
return %4 : $String
|
|
}
|
|
|