mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
44 lines
1.6 KiB
Plaintext
44 lines
1.6 KiB
Plaintext
// *NOTE* This is an end to end test. Specifically, we are ensuring that the
|
|
// driver is properly generated -enable-aarch64-tbi and also that the frontend
|
|
// respects this option and that we get the proper tbi behavior.
|
|
|
|
// RUN: %swiftc_driver -sdk "" -parse-sil -Xfrontend -disable-legacy-type-info -target arm64-apple-ios8.0 -target-cpu cyclone \
|
|
// RUN: -O -S %s -parse-as-library -parse-stdlib -module-name Swift -Xfrontend -no-verbose-asm \
|
|
// RUN: | \
|
|
// RUN: %FileCheck --check-prefix=TBI %s
|
|
|
|
// RUN: %swiftc_driver -sdk "" -parse-sil -Xfrontend -disable-legacy-type-info -target arm64-apple-ios7.0 -target-cpu cyclone \
|
|
// RUN: -O -S %s -parse-as-library -parse-stdlib -module-name Swift -Xfrontend -no-verbose-asm \
|
|
// RUN: | \
|
|
// RUN: %FileCheck --check-prefix=NO_TBI %s
|
|
|
|
// REQUIRES: CODEGENERATOR=AArch64
|
|
|
|
// Verify that TBI is on by default in Swift on targets that support it. For our
|
|
// purposes this means iOS8.0 or later.
|
|
|
|
// NO_TBI-LABEL: .globl _testTBI
|
|
// NO_TBI: _testTBI
|
|
// NO_TBI-NEXT: and
|
|
// NO_TBI-NEXT: ldr
|
|
// NO_TBI-NEXT: ret
|
|
|
|
// TBI-LABEL: .globl _testTBI
|
|
// TBI: _testTBI:
|
|
// TBI-NEXT: ldr
|
|
// TBI-NEXT: ret
|
|
|
|
sil_stage canonical
|
|
|
|
import Builtin
|
|
|
|
sil [ossa] @testTBI : $@convention(thin) (Builtin.Int64) -> Builtin.Int64 {
|
|
bb0(%0 : $Builtin.Int64):
|
|
%1 = integer_literal $Builtin.Int64, 0x00FFFFFFFFFFFFFF
|
|
%2 = builtin "and_Int64"(%0 : $Builtin.Int64, %1 : $Builtin.Int64) : $Builtin.Int64
|
|
%3 = builtin "inttoptr_Int64"(%2 : $Builtin.Int64) : $Builtin.RawPointer
|
|
%4 = pointer_to_address %3 : $Builtin.RawPointer to [strict] $*Builtin.Int64
|
|
%5 = load [trivial] %4 : $*Builtin.Int64
|
|
return %5 : $Builtin.Int64
|
|
}
|