| // RUN: %target-sil-opt -enable-sil-verify-all %s -sil-combine -sil-verify-without-invalidation | FileCheck %s |
| // RUN: %target-sil-opt -enable-sil-verify-all %s -diagnostic-constant-propagation -sil-verify-without-invalidation | FileCheck %s |
| |
| sil_stage canonical |
| |
| import Builtin |
| import Swift |
| |
| |
| //CHECK-LABEL: sil @_TF12StringConcat58testStringConcat_UnicodeScalarLiteral_UnicodeScalarLiteralFT_SS : $@convention(thin) () -> @owned String |
| //CHECK-NOT: string_literal utf8 "1" |
| //CHECK-NOT: string_literal utf8 "2" |
| //CHECK: string_literal utf8 "12" |
| // StringConcat.testStringConcat_UnicodeScalarLiteral_UnicodeScalarLiteral () -> Swift.String |
| sil @_TF12StringConcat58testStringConcat_UnicodeScalarLiteral_UnicodeScalarLiteralFT_SS : $@convention(thin) () -> @owned String { |
| bb0: |
| %0 = alloc_stack $String, var, name "s" // users: %15, %16 |
| // function_ref Swift.+ infix (Swift.String, Swift.String) -> Swift.String |
| %1 = function_ref @_TFsoi1pFTSSSS_SS : $@convention(thin) (@owned String, @owned String) -> @owned String // user: %14 |
| // function_ref Swift.String._convertFromBuiltinStringLiteral (Swift.String.Type)(Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String |
| %2 = function_ref @_TFSS32_convertFromBuiltinStringLiteralfMSSFTBp8byteSizeBw7isASCIIBi1__SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %7 |
| %3 = metatype $@thin String.Type // user: %7 |
| %4 = string_literal utf8 "1" // user: %7 |
| %5 = integer_literal $Builtin.Word, 1 // user: %7 |
| %6 = integer_literal $Builtin.Int1, -1 // user: %7 |
| %7 = apply %2(%4, %5, %6, %3) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %14 |
| // function_ref Swift.String._convertFromBuiltinStringLiteral (Swift.String.Type)(Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String |
| %8 = function_ref @_TFSS32_convertFromBuiltinStringLiteralfMSSFTBp8byteSizeBw7isASCIIBi1__SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %13 |
| %9 = metatype $@thin String.Type // user: %13 |
| %10 = string_literal utf8 "2" // user: %13 |
| %11 = integer_literal $Builtin.Word, 1 // user: %13 |
| %12 = integer_literal $Builtin.Int1, -1 // user: %13 |
| %13 = apply %8(%10, %11, %12, %9) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %14 |
| %14 = apply %1(%7, %13) : $@convention(thin) (@owned String, @owned String) -> @owned String // users: %15, %17 |
| store %14 to %0 : $*String // id: %15 |
| dealloc_stack %0 : $*String // id: %16 |
| return %14 : $String // id: %17 |
| } |
| |
| //CHECK-LABEL: sil @_TF12StringConcat68testStringConcat_UnicodeScalarLiteral_ExtendedGraphemeClusterLiteralFT_SS : $@convention(thin) () -> @owned String |
| //CHECK-NOT: string_literal utf8 "1" |
| //CHECK-NOT: string_literal utf16 "á" |
| //CHECK: string_literal utf16 "1á" |
| // StringConcat.testStringConcat_UnicodeScalarLiteral_ExtendedGraphemeClusterLiteral () -> Swift.String |
| sil @_TF12StringConcat68testStringConcat_UnicodeScalarLiteral_ExtendedGraphemeClusterLiteralFT_SS : $@convention(thin) () -> @owned String { |
| bb0: |
| %0 = alloc_stack $String, var, name "s" // users: %15, %16 |
| // function_ref Swift.+ infix (Swift.String, Swift.String) -> Swift.String |
| %1 = function_ref @_TFsoi1pFTSSSS_SS : $@convention(thin) (@owned String, @owned String) -> @owned String // user: %14 |
| // function_ref Swift.String._convertFromBuiltinStringLiteral (Swift.String.Type)(Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String |
| %2 = function_ref @_TFSS32_convertFromBuiltinStringLiteralfMSSFTBp8byteSizeBw7isASCIIBi1__SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %7 |
| %3 = metatype $@thin String.Type // user: %7 |
| %4 = string_literal utf8 "1" // user: %7 |
| %5 = integer_literal $Builtin.Word, 1 // user: %7 |
| %6 = integer_literal $Builtin.Int1, -1 // user: %7 |
| %7 = apply %2(%4, %5, %6, %3) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %14 |
| // function_ref Swift.String._convertFromBuiltinUTF16StringLiteral (Swift.String.Type)(Builtin.RawPointer, utf16CodeUnitCount : Builtin.Word) -> Swift.String |
| %8 = function_ref @_TFSS37_convertFromBuiltinUTF16StringLiteralfMSSFTBp18utf16CodeUnitCountBw_SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String // user: %13 |
| %9 = metatype $@thin String.Type // user: %13 |
| %10 = string_literal utf16 "á" // user: %13 |
| %11 = integer_literal $Builtin.Word, 2 // user: %13 |
| %12 = integer_literal $Builtin.Int1, 0 |
| %13 = apply %8(%10, %11, %9) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String // user: %14 |
| %14 = apply %1(%7, %13) : $@convention(thin) (@owned String, @owned String) -> @owned String // users: %15, %17 |
| store %14 to %0 : $*String // id: %15 |
| dealloc_stack %0 : $*String // id: %16 |
| return %14 : $String // id: %17 |
| } |
| |
| // Swift.+ infix (Swift.String, Swift.String) -> Swift.String |
| sil [readonly] [_semantics "string.concat"] @_TFsoi1pFTSSSS_SS : $@convention(thin) (@owned String, @owned String) -> @owned String |
| |
| // Swift.String._convertFromBuiltinStringLiteral (Swift.String.Type)(Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String |
| sil [readonly] [_semantics "string.makeUTF8"] @_TFSS32_convertFromBuiltinStringLiteralfMSSFTBp8byteSizeBw7isASCIIBi1__SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String |
| |
| // Swift.String._convertFromBuiltinUTF16StringLiteral (Swift.String.Type)(Builtin.RawPointer, utf16CodeUnitCount : Builtin.Word) -> Swift.String |
| sil [readonly] [_semantics "string.makeUTF16"] @_TFSS37_convertFromBuiltinUTF16StringLiteralfMSSFTBp18utf16CodeUnitCountBw_SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String |
| |
| //CHECK-LABEL: sil @_TF12StringConcat51testStringConcat_UnicodeScalarLiteral_StringLiteralFT_SS : $@convention(thin) () -> @owned String |
| //CHECK-NOT: string_literal utf8 "1" |
| //CHECK-NOT: string_literal utf8 "xyz" |
| //CHECK: string_literal utf8 "1xyz" |
| // StringConcat.testStringConcat_UnicodeScalarLiteral_StringLiteral () -> Swift.String |
| sil @_TF12StringConcat51testStringConcat_UnicodeScalarLiteral_StringLiteralFT_SS : $@convention(thin) () -> @owned String { |
| bb0: |
| %0 = alloc_stack $String, var, name "s" // users: %15, %16 |
| // function_ref Swift.+ infix (Swift.String, Swift.String) -> Swift.String |
| %1 = function_ref @_TFsoi1pFTSSSS_SS : $@convention(thin) (@owned String, @owned String) -> @owned String // user: %14 |
| // function_ref Swift.String._convertFromBuiltinStringLiteral (Swift.String.Type)(Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String |
| %2 = function_ref @_TFSS32_convertFromBuiltinStringLiteralfMSSFTBp8byteSizeBw7isASCIIBi1__SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %7 |
| %3 = metatype $@thin String.Type // user: %7 |
| %4 = string_literal utf8 "1" // user: %7 |
| %5 = integer_literal $Builtin.Word, 1 // user: %7 |
| %6 = integer_literal $Builtin.Int1, -1 // user: %7 |
| %7 = apply %2(%4, %5, %6, %3) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %14 |
| // function_ref Swift.String._convertFromBuiltinStringLiteral (Swift.String.Type)(Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String |
| %8 = function_ref @_TFSS32_convertFromBuiltinStringLiteralfMSSFTBp8byteSizeBw7isASCIIBi1__SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %13 |
| %9 = metatype $@thin String.Type // user: %13 |
| %10 = string_literal utf8 "xyz" // user: %13 |
| %11 = integer_literal $Builtin.Word, 3 // user: %13 |
| %12 = integer_literal $Builtin.Int1, -1 // user: %13 |
| %13 = apply %8(%10, %11, %12, %9) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %14 |
| %14 = apply %1(%7, %13) : $@convention(thin) (@owned String, @owned String) -> @owned String // users: %15, %17 |
| store %14 to %0 : $*String // id: %15 |
| dealloc_stack %0 : $*String // id: %16 |
| return %14 : $String // id: %17 |
| } |
| |
| //CHECK-LABEL: sil @_TF12StringConcat68testStringConcat_ExtendedGraphemeClusterLiteral_UnicodeScalarLiteralFT_SS : $@convention(thin) () -> @owned String |
| //CHECK-NOT: string_literal utf16 "á" |
| //CHECK-NOT: string_literal utf8 "z" |
| //CHECK: string_literal utf16 "áz" |
| // StringConcat.testStringConcat_ExtendedGraphemeClusterLiteral_UnicodeScalarLiteral () -> Swift.String |
| sil @_TF12StringConcat68testStringConcat_ExtendedGraphemeClusterLiteral_UnicodeScalarLiteralFT_SS : $@convention(thin) () -> @owned String { |
| bb0: |
| %0 = alloc_stack $String, var, name "s" // users: %15, %16 |
| // function_ref Swift.+ infix (Swift.String, Swift.String) -> Swift.String |
| %1 = function_ref @_TFsoi1pFTSSSS_SS : $@convention(thin) (@owned String, @owned String) -> @owned String // user: %14 |
| // function_ref Swift.String._convertFromBuiltinUTF16StringLiteral (Swift.String.Type)(Builtin.RawPointer, utf16CodeUnitCount : Builtin.Word) -> Swift.String |
| %2 = function_ref @_TFSS37_convertFromBuiltinUTF16StringLiteralfMSSFTBp18utf16CodeUnitCountBw_SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String // user: %7 |
| %3 = metatype $@thin String.Type // user: %7 |
| %4 = string_literal utf16 "á" // user: %7 |
| %5 = integer_literal $Builtin.Word, 2 // user: %7 |
| %6 = integer_literal $Builtin.Int1, 0 |
| %7 = apply %2(%4, %5, %3) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String // user: %14 |
| // function_ref Swift.String._convertFromBuiltinStringLiteral (Swift.String.Type)(Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String |
| %8 = function_ref @_TFSS32_convertFromBuiltinStringLiteralfMSSFTBp8byteSizeBw7isASCIIBi1__SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %13 |
| %9 = metatype $@thin String.Type // user: %13 |
| %10 = string_literal utf8 "z" // user: %13 |
| %11 = integer_literal $Builtin.Word, 1 // user: %13 |
| %12 = integer_literal $Builtin.Int1, -1 // user: %13 |
| %13 = apply %8(%10, %11, %12, %9) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %14 |
| %14 = apply %1(%7, %13) : $@convention(thin) (@owned String, @owned String) -> @owned String // users: %15, %17 |
| store %14 to %0 : $*String // id: %15 |
| dealloc_stack %0 : $*String // id: %16 |
| return %14 : $String // id: %17 |
| } |
| |
| //CHECK-LABEL: sil @_TF12StringConcat78testStringConcat_ExtendedGraphemeClusterLiteral_ExtendedGraphemeClusterLiteralFT_SS : $@convention(thin) () -> @owned String |
| //CHECK-NOT: string_literal utf16 "á" |
| //CHECK-NOT: string_literal utf16 "ê" |
| //CHECK: string_literal utf16 "áê" |
| // StringConcat.testStringConcat_ExtendedGraphemeClusterLiteral_ExtendedGraphemeClusterLiteral () -> Swift.String |
| sil @_TF12StringConcat78testStringConcat_ExtendedGraphemeClusterLiteral_ExtendedGraphemeClusterLiteralFT_SS : $@convention(thin) () -> @owned String { |
| bb0: |
| %0 = alloc_stack $String, var, name "s" // users: %15, %16 |
| // function_ref Swift.+ infix (Swift.String, Swift.String) -> Swift.String |
| %1 = function_ref @_TFsoi1pFTSSSS_SS : $@convention(thin) (@owned String, @owned String) -> @owned String // user: %14 |
| // function_ref Swift.String._convertFromBuiltinUTF16StringLiteral (Swift.String.Type)(Builtin.RawPointer, utf16CodeUnitCount : Builtin.Word) -> Swift.String |
| %2 = function_ref @_TFSS37_convertFromBuiltinUTF16StringLiteralfMSSFTBp18utf16CodeUnitCountBw_SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String // user: %7 |
| %3 = metatype $@thin String.Type // user: %7 |
| %4 = string_literal utf16 "á" // user: %7 |
| %5 = integer_literal $Builtin.Word, 2 // user: %7 |
| %6 = integer_literal $Builtin.Int1, 0 |
| %7 = apply %2(%4, %5, %3) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String // user: %14 |
| // function_ref Swift.String._convertFromBuiltinUTF16StringLiteral (Swift.String.Type)(Builtin.RawPointer, utf16CodeUnitCount : Builtin.Word) -> Swift.String |
| %8 = function_ref @_TFSS37_convertFromBuiltinUTF16StringLiteralfMSSFTBp18utf16CodeUnitCountBw_SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String // user: %13 |
| %9 = metatype $@thin String.Type // user: %13 |
| %10 = string_literal utf16 "ê" // user: %13 |
| %11 = integer_literal $Builtin.Word, 2 // user: %13 |
| %12 = integer_literal $Builtin.Int1, 0 |
| %13 = apply %8(%10, %11, %9) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String // user: %14 |
| %14 = apply %1(%7, %13) : $@convention(thin) (@owned String, @owned String) -> @owned String // users: %15, %17 |
| store %14 to %0 : $*String // id: %15 |
| dealloc_stack %0 : $*String // id: %16 |
| return %14 : $String // id: %17 |
| } |
| |
| //CHECK-LABEL: sil @_TF12StringConcat61testStringConcat_ExtendedGraphemeClusterLiteral_StringLiteralFT_SS : $@convention(thin) () -> @owned String |
| //CHECK-NOT: string_literal utf16 "á" |
| //CHECK-NOT: string_literal utf8 "xyz" |
| //CHECK: string_literal utf16 "áxyz" |
| // StringConcat.testStringConcat_ExtendedGraphemeClusterLiteral_StringLiteral () -> Swift.String |
| sil @_TF12StringConcat61testStringConcat_ExtendedGraphemeClusterLiteral_StringLiteralFT_SS : $@convention(thin) () -> @owned String { |
| bb0: |
| %0 = alloc_stack $String, var, name "s" // users: %15, %16 |
| // function_ref Swift.+ infix (Swift.String, Swift.String) -> Swift.String |
| %1 = function_ref @_TFsoi1pFTSSSS_SS : $@convention(thin) (@owned String, @owned String) -> @owned String // user: %14 |
| // function_ref Swift.String._convertFromBuiltinUTF16StringLiteral (Swift.String.Type)(Builtin.RawPointer, utf16CodeUnitCount : Builtin.Word) -> Swift.String |
| %2 = function_ref @_TFSS37_convertFromBuiltinUTF16StringLiteralfMSSFTBp18utf16CodeUnitCountBw_SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String // user: %7 |
| %3 = metatype $@thin String.Type // user: %7 |
| %4 = string_literal utf16 "á" // user: %7 |
| %5 = integer_literal $Builtin.Word, 2 // user: %7 |
| %6 = integer_literal $Builtin.Int1, 0 |
| %7 = apply %2(%4, %5, %3) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String // user: %14 |
| // function_ref Swift.String._convertFromBuiltinStringLiteral (Swift.String.Type)(Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String |
| %8 = function_ref @_TFSS32_convertFromBuiltinStringLiteralfMSSFTBp8byteSizeBw7isASCIIBi1__SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %13 |
| %9 = metatype $@thin String.Type // user: %13 |
| %10 = string_literal utf8 "xyz" // user: %13 |
| %11 = integer_literal $Builtin.Word, 3 // user: %13 |
| %12 = integer_literal $Builtin.Int1, -1 // user: %13 |
| %13 = apply %8(%10, %11, %12, %9) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %14 |
| %14 = apply %1(%7, %13) : $@convention(thin) (@owned String, @owned String) -> @owned String // users: %15, %17 |
| store %14 to %0 : $*String // id: %15 |
| dealloc_stack %0 : $*String // id: %16 |
| return %14 : $String // id: %17 |
| } |
| |
| //CHECK-LABEL: sil @_TF12StringConcat51testStringConcat_StringLiteral_UnicodeScalarLiteralFT_SS : $@convention(thin) () -> @owned String |
| //CHECK-NOT: string_literal utf8 "xyz" |
| //CHECK-NOT: string_literal utf8 "1" |
| //CHECK: string_literal utf8 "xyz1" |
| // StringConcat.testStringConcat_StringLiteral_UnicodeScalarLiteral () -> Swift.String |
| sil @_TF12StringConcat51testStringConcat_StringLiteral_UnicodeScalarLiteralFT_SS : $@convention(thin) () -> @owned String { |
| bb0: |
| %0 = alloc_stack $String, var, name "s" // users: %15, %16 |
| // function_ref Swift.+ infix (Swift.String, Swift.String) -> Swift.String |
| %1 = function_ref @_TFsoi1pFTSSSS_SS : $@convention(thin) (@owned String, @owned String) -> @owned String // user: %14 |
| // function_ref Swift.String._convertFromBuiltinStringLiteral (Swift.String.Type)(Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String |
| %2 = function_ref @_TFSS32_convertFromBuiltinStringLiteralfMSSFTBp8byteSizeBw7isASCIIBi1__SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %7 |
| %3 = metatype $@thin String.Type // user: %7 |
| %4 = string_literal utf8 "xyz" // user: %7 |
| %5 = integer_literal $Builtin.Word, 3 // user: %7 |
| %6 = integer_literal $Builtin.Int1, -1 // user: %7 |
| %7 = apply %2(%4, %5, %6, %3) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %14 |
| // function_ref Swift.String._convertFromBuiltinStringLiteral (Swift.String.Type)(Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String |
| %8 = function_ref @_TFSS32_convertFromBuiltinStringLiteralfMSSFTBp8byteSizeBw7isASCIIBi1__SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %13 |
| %9 = metatype $@thin String.Type // user: %13 |
| %10 = string_literal utf8 "1" // user: %13 |
| %11 = integer_literal $Builtin.Word, 1 // user: %13 |
| %12 = integer_literal $Builtin.Int1, -1 // user: %13 |
| %13 = apply %8(%10, %11, %12, %9) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %14 |
| %14 = apply %1(%7, %13) : $@convention(thin) (@owned String, @owned String) -> @owned String // users: %15, %17 |
| store %14 to %0 : $*String // id: %15 |
| dealloc_stack %0 : $*String // id: %16 |
| return %14 : $String // id: %17 |
| } |
| |
| //CHECK-LABEL: sil @_TF12StringConcat61testStringConcat_StringLiteral_ExtendedGraphemeClusterLiteralFT_SS : $@convention(thin) () -> @owned String |
| //CHECK-NOT: string_literal utf8 "xyz" |
| //CHECK-NOT: string_literal utf16 "á" |
| //CHECK: string_literal utf16 "xyzá" |
| // StringConcat.testStringConcat_StringLiteral_ExtendedGraphemeClusterLiteral () -> Swift.String |
| sil @_TF12StringConcat61testStringConcat_StringLiteral_ExtendedGraphemeClusterLiteralFT_SS : $@convention(thin) () -> @owned String { |
| bb0: |
| %0 = alloc_stack $String, var, name "s" // users: %15, %16 |
| // function_ref Swift.+ infix (Swift.String, Swift.String) -> Swift.String |
| %1 = function_ref @_TFsoi1pFTSSSS_SS : $@convention(thin) (@owned String, @owned String) -> @owned String // user: %14 |
| // function_ref Swift.String._convertFromBuiltinStringLiteral (Swift.String.Type)(Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String |
| %2 = function_ref @_TFSS32_convertFromBuiltinStringLiteralfMSSFTBp8byteSizeBw7isASCIIBi1__SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %7 |
| %3 = metatype $@thin String.Type // user: %7 |
| %4 = string_literal utf8 "xyz" // user: %7 |
| %5 = integer_literal $Builtin.Word, 3 // user: %7 |
| %6 = integer_literal $Builtin.Int1, -1 // user: %7 |
| %7 = apply %2(%4, %5, %6, %3) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %14 |
| // function_ref Swift.String._convertFromBuiltinUTF16StringLiteral (Swift.String.Type)(Builtin.RawPointer, utf16CodeUnitCount : Builtin.Word) -> Swift.String |
| %8 = function_ref @_TFSS37_convertFromBuiltinUTF16StringLiteralfMSSFTBp18utf16CodeUnitCountBw_SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String // user: %13 |
| %9 = metatype $@thin String.Type // user: %13 |
| %10 = string_literal utf16 "á" // user: %13 |
| %11 = integer_literal $Builtin.Word, 2 // user: %13 |
| %12 = integer_literal $Builtin.Int1, 0 |
| %13 = apply %8(%10, %11, %9) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String // user: %14 |
| %14 = apply %1(%7, %13) : $@convention(thin) (@owned String, @owned String) -> @owned String // users: %15, %17 |
| store %14 to %0 : $*String // id: %15 |
| dealloc_stack %0 : $*String // id: %16 |
| return %14 : $String // id: %17 |
| } |
| |
| //CHECK-LABEL: sil @_TF12StringConcat44testStringConcat_StringLiteral_StringLiteralFT_SS : $@convention(thin) () -> @owned String |
| //CHECK-NOT: string_literal utf8 "xyz" |
| //CHECK-NOT: string_literal utf8 "abc" |
| //CHECK: string_literal utf8 "xyzabc" |
| // StringConcat.testStringConcat_StringLiteral_StringLiteral () -> Swift.String |
| sil @_TF12StringConcat44testStringConcat_StringLiteral_StringLiteralFT_SS : $@convention(thin) () -> @owned String { |
| bb0: |
| %0 = alloc_stack $String, var, name "s" // users: %15, %16 |
| // function_ref Swift.+ infix (Swift.String, Swift.String) -> Swift.String |
| %1 = function_ref @_TFsoi1pFTSSSS_SS : $@convention(thin) (@owned String, @owned String) -> @owned String // user: %14 |
| // function_ref Swift.String._convertFromBuiltinStringLiteral (Swift.String.Type)(Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String |
| %2 = function_ref @_TFSS32_convertFromBuiltinStringLiteralfMSSFTBp8byteSizeBw7isASCIIBi1__SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %7 |
| %3 = metatype $@thin String.Type // user: %7 |
| %4 = string_literal utf8 "xyz" // user: %7 |
| %5 = integer_literal $Builtin.Word, 3 // user: %7 |
| %6 = integer_literal $Builtin.Int1, -1 // user: %7 |
| %7 = apply %2(%4, %5, %6, %3) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %14 |
| // function_ref Swift.String._convertFromBuiltinStringLiteral (Swift.String.Type)(Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String |
| %8 = function_ref @_TFSS32_convertFromBuiltinStringLiteralfMSSFTBp8byteSizeBw7isASCIIBi1__SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %13 |
| %9 = metatype $@thin String.Type // user: %13 |
| %10 = string_literal utf8 "abc" // user: %13 |
| %11 = integer_literal $Builtin.Word, 3 // user: %13 |
| %12 = integer_literal $Builtin.Int1, -1 // user: %13 |
| %13 = apply %8(%10, %11, %12, %9) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %14 |
| %14 = apply %1(%7, %13) : $@convention(thin) (@owned String, @owned String) -> @owned String // users: %15, %17 |
| store %14 to %0 : $*String // id: %15 |
| dealloc_stack %0 : $*String // id: %16 |
| return %14 : $String // id: %17 |
| } |
| |
| //CHECK-LABEL: sil @_TF12StringConcat72testStringConcat_StringLiteral_StringLiteral_StringLiteral_StringLiteralFT_SS : $@convention(thin) () -> @owned String |
| //CHECK-NOT: string_literal utf8 "ab" |
| //CHECK-NOT: string_literal utf8 "cd" |
| //CHECK-NOT: string_literal utf8 "ef" |
| //CHECK-NOT: string_literal utf8 "gh" |
| //CHECK: string_literal utf8 "abcdefgh" |
| // StringConcat.testStringConcat_StringLiteral_StringLiteral_StringLiteral_StringLiteral () -> Swift.String |
| sil @_TF12StringConcat72testStringConcat_StringLiteral_StringLiteral_StringLiteral_StringLiteralFT_SS : $@convention(thin) () -> @owned String { |
| bb0: |
| %0 = alloc_stack $String, var, name "s" // users: %31, %32 |
| // function_ref Swift.+ infix (Swift.String, Swift.String) -> Swift.String |
| %1 = function_ref @_TFsoi1pFTSSSS_SS : $@convention(thin) (@owned String, @owned String) -> @owned String // user: %30 |
| // function_ref Swift.+ infix (Swift.String, Swift.String) -> Swift.String |
| %2 = function_ref @_TFsoi1pFTSSSS_SS : $@convention(thin) (@owned String, @owned String) -> @owned String // user: %23 |
| // function_ref Swift.+ infix (Swift.String, Swift.String) -> Swift.String |
| %3 = function_ref @_TFsoi1pFTSSSS_SS : $@convention(thin) (@owned String, @owned String) -> @owned String // user: %16 |
| // function_ref Swift.String._convertFromBuiltinStringLiteral (Swift.String.Type)(Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String |
| %4 = function_ref @_TFSS32_convertFromBuiltinStringLiteralfMSSFTBp8byteSizeBw7isASCIIBi1__SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %9 |
| %5 = metatype $@thin String.Type // user: %9 |
| %6 = string_literal utf8 "ab" // user: %9 |
| %7 = integer_literal $Builtin.Word, 2 // user: %9 |
| %8 = integer_literal $Builtin.Int1, -1 // user: %9 |
| %9 = apply %4(%6, %7, %8, %5) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %16 |
| // function_ref Swift.String._convertFromBuiltinStringLiteral (Swift.String.Type)(Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String |
| %10 = function_ref @_TFSS32_convertFromBuiltinStringLiteralfMSSFTBp8byteSizeBw7isASCIIBi1__SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %15 |
| %11 = metatype $@thin String.Type // user: %15 |
| %12 = string_literal utf8 "cd" // user: %15 |
| %13 = integer_literal $Builtin.Word, 2 // user: %15 |
| %14 = integer_literal $Builtin.Int1, -1 // user: %15 |
| %15 = apply %10(%12, %13, %14, %11) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %16 |
| %16 = apply %3(%9, %15) : $@convention(thin) (@owned String, @owned String) -> @owned String // user: %23 |
| // function_ref Swift.String._convertFromBuiltinStringLiteral (Swift.String.Type)(Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String |
| %17 = function_ref @_TFSS32_convertFromBuiltinStringLiteralfMSSFTBp8byteSizeBw7isASCIIBi1__SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %22 |
| %18 = metatype $@thin String.Type // user: %22 |
| %19 = string_literal utf8 "ef" // user: %22 |
| %20 = integer_literal $Builtin.Word, 2 // user: %22 |
| %21 = integer_literal $Builtin.Int1, -1 // user: %22 |
| %22 = apply %17(%19, %20, %21, %18) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %23 |
| %23 = apply %2(%16, %22) : $@convention(thin) (@owned String, @owned String) -> @owned String // user: %30 |
| // function_ref Swift.String._convertFromBuiltinStringLiteral (Swift.String.Type)(Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String |
| %24 = function_ref @_TFSS32_convertFromBuiltinStringLiteralfMSSFTBp8byteSizeBw7isASCIIBi1__SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %29 |
| %25 = metatype $@thin String.Type // user: %29 |
| %26 = string_literal utf8 "gh" // user: %29 |
| %27 = integer_literal $Builtin.Word, 2 // user: %29 |
| %28 = integer_literal $Builtin.Int1, -1 // user: %29 |
| %29 = apply %24(%26, %27, %28, %25) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %30 |
| %30 = apply %1(%23, %29) : $@convention(thin) (@owned String, @owned String) -> @owned String // users: %31, %33 |
| store %30 to %0 : $*String // id: %31 |
| dealloc_stack %0 : $*String // id: %32 |
| return %30 : $String // id: %33 |
| } |
| |
| //CHECK-LABEL: sil @_TF12StringConcat82testStringConcat_StringLiteral_UnicodeScalarLiteral_ExtendedGraphemeClusterLiteralFT_SS : $@convention(thin) () -> @owned String |
| //CHECK-NOT: string_literal utf8 "ab" |
| //CHECK-NOT: string_literal utf8 "c" |
| //CHECK-NOT: string_literal utf16 "á" |
| //CHECK: string_literal utf16 "abcá" |
| // StringConcat.testStringConcat_StringLiteral_UnicodeScalarLiteral_ExtendedGraphemeClusterLiteral () -> Swift.String |
| sil @_TF12StringConcat82testStringConcat_StringLiteral_UnicodeScalarLiteral_ExtendedGraphemeClusterLiteralFT_SS : $@convention(thin) () -> @owned String { |
| bb0: |
| %0 = alloc_stack $String, var, name "s" // users: %23, %24 |
| // function_ref Swift.+ infix (Swift.String, Swift.String) -> Swift.String |
| %1 = function_ref @_TFsoi1pFTSSSS_SS : $@convention(thin) (@owned String, @owned String) -> @owned String // user: %22 |
| // function_ref Swift.+ infix (Swift.String, Swift.String) -> Swift.String |
| %2 = function_ref @_TFsoi1pFTSSSS_SS : $@convention(thin) (@owned String, @owned String) -> @owned String // user: %15 |
| // function_ref Swift.String._convertFromBuiltinStringLiteral (Swift.String.Type)(Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String |
| %3 = function_ref @_TFSS32_convertFromBuiltinStringLiteralfMSSFTBp8byteSizeBw7isASCIIBi1__SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %8 |
| %4 = metatype $@thin String.Type // user: %8 |
| %5 = string_literal utf8 "ab" // user: %8 |
| %6 = integer_literal $Builtin.Word, 2 // user: %8 |
| %7 = integer_literal $Builtin.Int1, -1 // user: %8 |
| %8 = apply %3(%5, %6, %7, %4) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %15 |
| // function_ref Swift.String._convertFromBuiltinStringLiteral (Swift.String.Type)(Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String |
| %9 = function_ref @_TFSS32_convertFromBuiltinStringLiteralfMSSFTBp8byteSizeBw7isASCIIBi1__SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %14 |
| %10 = metatype $@thin String.Type // user: %14 |
| %11 = string_literal utf8 "c" // user: %14 |
| %12 = integer_literal $Builtin.Word, 1 // user: %14 |
| %13 = integer_literal $Builtin.Int1, -1 // user: %14 |
| %14 = apply %9(%11, %12, %13, %10) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %15 |
| %15 = apply %2(%8, %14) : $@convention(thin) (@owned String, @owned String) -> @owned String // user: %22 |
| // function_ref Swift.String._convertFromBuiltinUTF16StringLiteral (Swift.String.Type)(Builtin.RawPointer, utf16CodeUnitCount : Builtin.Word) -> Swift.String |
| %16 = function_ref @_TFSS37_convertFromBuiltinUTF16StringLiteralfMSSFTBp18utf16CodeUnitCountBw_SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String // user: %21 |
| %17 = metatype $@thin String.Type // user: %21 |
| %18 = string_literal utf16 "á" // user: %21 |
| %19 = integer_literal $Builtin.Word, 2 // user: %21 |
| %20 = integer_literal $Builtin.Int1, 0 |
| %21 = apply %16(%18, %19, %17) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String // user: %22 |
| %22 = apply %1(%15, %21) : $@convention(thin) (@owned String, @owned String) -> @owned String // users: %23, %25 |
| store %22 to %0 : $*String // id: %23 |
| dealloc_stack %0 : $*String // id: %24 |
| return %22 : $String // id: %25 |
| } |
| |
| |
| //CHECK-LABEL: sil @_TF12StringConcat109testStringConcat_ExtendedGraphemeClusterLiteral_ExtendedGraphemeClusterLiteral_ExtendedGraphemeClusterLiteralFT_SS : $@convention(thin) () -> @owned String |
| //CHECK-NOT: string_literal utf16 "aaaá" |
| //CHECK-NOT: string_literal utf16 "bbbb́" |
| //CHECK-NOT: string_literal utf16 "cccć" |
| //CHECK: string_literal utf16 "aaaábbbb́cccć" |
| // StringConcat.testStringConcat_ExtendedGraphemeClusterLiteral_ExtendedGraphemeClusterLiteral_ExtendedGraphemeClusterLiteral () -> Swift.String |
| sil @_TF12StringConcat109testStringConcat_ExtendedGraphemeClusterLiteral_ExtendedGraphemeClusterLiteral_ExtendedGraphemeClusterLiteralFT_SS : $@convention(thin) () -> @owned String { |
| bb0: |
| %0 = alloc_stack $String, var, name "s" // users: %23, %24 |
| // function_ref Swift.+ infix (Swift.String, Swift.String) -> Swift.String |
| %1 = function_ref @_TFsoi1pFTSSSS_SS : $@convention(thin) (@owned String, @owned String) -> @owned String // user: %22 |
| // function_ref Swift.+ infix (Swift.String, Swift.String) -> Swift.String |
| %2 = function_ref @_TFsoi1pFTSSSS_SS : $@convention(thin) (@owned String, @owned String) -> @owned String // user: %15 |
| // function_ref Swift.String._convertFromBuiltinUTF16StringLiteral (Swift.String.Type)(Builtin.RawPointer, utf16CodeUnitCount : Builtin.Word) -> Swift.String |
| %3 = function_ref @_TFSS37_convertFromBuiltinUTF16StringLiteralfMSSFTBp18utf16CodeUnitCountBw_SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String // user: %8 |
| %4 = metatype $@thin String.Type // user: %8 |
| %5 = string_literal utf16 "aaaá" // user: %8 |
| %6 = integer_literal $Builtin.Word, 5 // user: %8 |
| %7 = integer_literal $Builtin.Int1, 0 |
| %8 = apply %3(%5, %6, %4) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String // user: %15 |
| // function_ref Swift.String._convertFromBuiltinUTF16StringLiteral (Swift.String.Type)(Builtin.RawPointer, utf16CodeUnitCount : Builtin.Word) -> Swift.String |
| %9 = function_ref @_TFSS37_convertFromBuiltinUTF16StringLiteralfMSSFTBp18utf16CodeUnitCountBw_SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String // user: %14 |
| %10 = metatype $@thin String.Type // user: %14 |
| %11 = string_literal utf16 "bbbb́" // user: %14 |
| %12 = integer_literal $Builtin.Word, 5 // user: %14 |
| %13 = integer_literal $Builtin.Int1, 0 |
| %14 = apply %9(%11, %12, %10) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String // user: %15 |
| %15 = apply %2(%8, %14) : $@convention(thin) (@owned String, @owned String) -> @owned String // user: %22 |
| // function_ref Swift.String._convertFromBuiltinUTF16StringLiteral (Swift.String.Type)(Builtin.RawPointer, utf16CodeUnitCount : Builtin.Word) -> Swift.String |
| %16 = function_ref @_TFSS37_convertFromBuiltinUTF16StringLiteralfMSSFTBp18utf16CodeUnitCountBw_SS : $@convention(thin) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String // user: %21 |
| %17 = metatype $@thin String.Type // user: %21 |
| %18 = string_literal utf16 "cccć" // user: %21 |
| %19 = integer_literal $Builtin.Word, 5 // user: %21 |
| %20 = integer_literal $Builtin.Int1, 0 |
| %21 = apply %16(%18, %19, %17) : $@convention(thin) (Builtin.RawPointer, Builtin.Word, @thin String.Type) -> @owned String // user: %22 |
| %22 = apply %1(%15, %21) : $@convention(thin) (@owned String, @owned String) -> @owned String // users: %23, %25 |
| store %22 to %0 : $*String // id: %23 |
| dealloc_stack %0 : $*String // id: %24 |
| return %22 : $String // id: %25 |
| } |
| |