mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
41 lines
1.8 KiB
Plaintext
41 lines
1.8 KiB
Plaintext
// RUN: %target-swift-frontend %s -emit-ir | %FileCheck %s
|
|
|
|
sil_stage canonical
|
|
|
|
import Builtin
|
|
import Swift
|
|
|
|
// The builtin is turned into a call into the compiler-rt runtime
|
|
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc i32 @"$useTargetVariantBuiltin"()
|
|
sil @$useTargetVariantBuiltin : $@convention(thin) () -> Builtin.Int32 {
|
|
bb0:
|
|
%major = integer_literal $Builtin.Int32, 13
|
|
%minor = integer_literal $Builtin.Int32, 0
|
|
%patch = integer_literal $Builtin.Int32, 0
|
|
%result = builtin "targetVariantOSVersionAtLeast" (%major: $Builtin.Int32, %minor: $Builtin.Int32, %patch: $Builtin.Int32) : $Builtin.Int32
|
|
// 2 is the platform ID for iOS (the variant OS).
|
|
// CHECK: call i32 @__isPlatformVersionAtLeast(i32 2, i32 13, i32 0, i32 0)
|
|
return %result : $Builtin.Int32
|
|
// CHECK-NEXT: ret i32
|
|
}
|
|
|
|
// This is the builtin used in zippered code.
|
|
// It is turned into a call into the compiler-rt runtime.
|
|
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc i32 @"$useZipperedBuiltin"()
|
|
sil @$useZipperedBuiltin : $@convention(thin) () -> Builtin.Int32 {
|
|
bb0:
|
|
%major = integer_literal $Builtin.Int32, 10
|
|
%minor = integer_literal $Builtin.Int32, 15
|
|
%patch = integer_literal $Builtin.Int32, 1
|
|
%variantMajor = integer_literal $Builtin.Int32, 13
|
|
%variantMinor = integer_literal $Builtin.Int32, 1
|
|
%variantPatch = integer_literal $Builtin.Int32, 2
|
|
%result = builtin "targetOSVersionOrVariantOSVersionAtLeast" (%major: $Builtin.Int32, %minor: $Builtin.Int32, %patch: $Builtin.Int32, %variantMajor: $Builtin.Int32, %variantMinor: $Builtin.Int32, %variantPatch: $Builtin.Int32) : $Builtin.Int32
|
|
// 1 is the platform ID for macOS.
|
|
// 2 is the platform ID for iOS.
|
|
// CHECK: call i32 @__isPlatformOrVariantPlatformVersionAtLeast(i32 1, i32 10, i32 15, i32 1, i32 2, i32 13, i32 1, i32 2)
|
|
return %result : $Builtin.Int32
|
|
// CHECK-NEXT: ret i32
|
|
}
|
|
|