Skip to content

powerpc64{le} test fixes #2472

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
May 11, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions docs/Testing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -377,10 +377,12 @@ use this pattern::
// RUN: %target-swift-frontend ... | FileCheck --check-prefix=CHECK --check-prefix=CHECK-%target-cpu %s

// CHECK: common line
// CHECK-i386: only for i386
// CHECK-x86_64: only for x86_64
// CHECK-armv7: only for armv7
// CHECK-arm64: only for arm64
// CHECK-i386: only for i386
// CHECK-x86_64: only for x86_64
// CHECK-armv7: only for armv7
// CHECK-arm64: only for arm64
// CHECK-powerpc64: only for powerpc64
// CHECK-powerpc64le: only for powerpc64le

Features for ``REQUIRES`` and ``XFAIL``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Expand Down
2 changes: 1 addition & 1 deletion test/1_stdlib/tgmath.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
// where they doesn't have CoreGraphics module.
#if arch(i386) || arch(arm)
typealias CGFloat = Float
#elseif arch(x86_64) || arch(arm64)
#elseif arch(x86_64) || arch(arm64) || arch(powerpc64) || arch(powerpc64le)
typealias CGFloat = Double
#endif
#else
Expand Down
32 changes: 32 additions & 0 deletions test/IRGen/c_layout.sil
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,38 @@ bb0:
// CHECK-arm64-LABEL: declare i32 @ints(i32)
// CHECK-arm64-LABEL: declare i32 @unsigneds(i32)

// CHECK-powerpc64-LABEL: define{{( protected)?}} void @testIntegerExtension
// CHECK-powerpc64: call zeroext i8 @chareth(i8 zeroext %0)
// CHECK-powerpc64: call zeroext i8 @signedChareth(i8 zeroext %1)
// CHECK-powerpc64: call zeroext i8 @unsignedChareth(i8 zeroext %2)
// CHECK-powerpc64: call signext i16 @eatMyShorts(i16 signext %3)
// CHECK-powerpc64: call zeroext i16 @eatMyUnsignedShorts(i16 zeroext %4)
// CHECK-powerpc64: call signext i32 @ints(i32 signext %5)
// CHECK-powerpc64: call zeroext i32 @unsigneds(i32 zeroext %6)
// CHECK-powerpc64-LABEL: declare zeroext i8 @chareth(i8 zeroext)
// CHECK-powerpc64-LABEL: declare zeroext i8 @signedChareth(i8 zeroext)
// CHECK-powerpc64-LABEL: declare zeroext i8 @unsignedChareth(i8 zeroext)
// CHECK-powerpc64-LABEL: declare signext i16 @eatMyShorts(i16 signext)
// CHECK-powerpc64-LABEL: declare zeroext i16 @eatMyUnsignedShorts(i16 zeroext)
// CHECK-powerpc64-LABEL: declare signext i32 @ints(i32 signext)
// CHECK-powerpc64-LABEL: declare zeroext i32 @unsigneds(i32 zeroext)

// CHECK-powerpc64le-LABEL: define{{( protected)?}} void @testIntegerExtension
// CHECK-powerpc64le: call zeroext i8 @chareth(i8 zeroext %0)
// CHECK-powerpc64le: call zeroext i8 @signedChareth(i8 zeroext %1)
// CHECK-powerpc64le: call zeroext i8 @unsignedChareth(i8 zeroext %2)
// CHECK-powerpc64le: call signext i16 @eatMyShorts(i16 signext %3)
// CHECK-powerpc64le: call zeroext i16 @eatMyUnsignedShorts(i16 zeroext %4)
// CHECK-powerpc64le: call signext i32 @ints(i32 signext %5)
// CHECK-powerpc64le: call zeroext i32 @unsigneds(i32 zeroext %6)
// CHECK-powerpc64le-LABEL: declare zeroext i8 @chareth(i8 zeroext)
// CHECK-powerpc64le-LABEL: declare zeroext i8 @signedChareth(i8 zeroext)
// CHECK-powerpc64le-LABEL: declare zeroext i8 @unsignedChareth(i8 zeroext)
// CHECK-powerpc64le-LABEL: declare signext i16 @eatMyShorts(i16 signext)
// CHECK-powerpc64le-LABEL: declare zeroext i16 @eatMyUnsignedShorts(i16 zeroext)
// CHECK-powerpc64le-LABEL: declare signext i32 @ints(i32 signext)
// CHECK-powerpc64le-LABEL: declare zeroext i32 @unsigneds(i32 zeroext)

sil @testIntegerExtension : $@convention(thin) (CChar, CSignedChar, CUnsignedChar, CShort, CUnsignedShort, CInt, CUnsignedInt) -> () {
entry(%a : $CChar, %b : $CSignedChar, %c : $CUnsignedChar, %d : $CShort, %e : $CUnsignedShort, %f : $CInt, %g : $CUnsignedInt):
%h = function_ref @chareth : $@convention(c) (CChar) -> CChar
Expand Down
28 changes: 16 additions & 12 deletions test/IRGen/condfail.sil
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,22 @@ import Swift

// Make sure we emit two traps.

// CHECK-LABEL: _test_cond_fail:
// CHECK: .cfi_startproc
// CHECK-x86_64: ud2
// CHECK-i386: ud2
// CHECK-arm64: brk
// CHECK-armv7: trap
// CHECK-NOT: .cfi_endproc
// CHECK-x86_64: ud2
// CHECK-i386: ud2
// CHECK-arm64: brk
// CHECK-armv7: trap
// CHECK: .cfi_endproc
// CHECK-LABEL: _test_cond_fail:
// CHECK: .cfi_startproc
// CHECK-x86_64: ud2
// CHECK-i386: ud2
// CHECK-arm64: brk
// CHECK-armv7: trap
// CHECK-powerpc64: trap
// CHECK-powerpc64le: trap
// CHECK-NOT: .cfi_endproc
// CHECK-x86_64: ud2
// CHECK-i386: ud2
// CHECK-arm64: brk
// CHECK-armv7: trap
// CHECK-powerpc64: trap
// CHECK-powerpc64le: trap
// CHECK: .cfi_endproc
sil hidden @test_cond_fail : $@convention(thin) (Int32) -> Int32 {
bb0(%0 : $Int32):
%2 = integer_literal $Builtin.Int32, 1
Expand Down