Files
UnrealEngine/Engine/Source/ThirdParty/Intel/ISPC/ispc-1.21.0/tests/lit-tests/2402.ispc
2025-05-18 13:04:45 +08:00

26 lines
2.0 KiB
Plaintext

// The test checks that ISPC doesn't produce SSE42 instructions like "pcmpgtq" on SSE41 platforms.
// It also checks that sse4.1 and sse4.2 targets can't be used together in multi-target compilation.
// RUN: %{ispc} %s --target=sse4.1-i8x16 --emit-asm --nostdlib -o - | FileCheck %s --implicit-check-not "pcmpgtq"
// RUN: %{ispc} %s --target=sse4.1-i16x8 --emit-asm --nostdlib -o - | FileCheck %s --implicit-check-not "pcmpgtq"
// RUN: %{ispc} %s --target=sse4.1-i32x4 --emit-asm --nostdlib -o - | FileCheck %s --implicit-check-not "pcmpgtq"
// RUN: %{ispc} %s --target=sse4.1-i32x8 --emit-asm --nostdlib -o - | FileCheck %s --implicit-check-not "pcmpgtq"
// RUN: %{ispc} %s --target=sse4.2-i8x16 --cpu=penryn --emit-asm --nostdlib -o - | FileCheck %s --implicit-check-not "pcmpgtq"
// RUN: %{ispc} %s --target=sse4.2-i16x8 --cpu=penryn --emit-asm --nostdlib -o - | FileCheck %s --implicit-check-not "pcmpgtq"
// RUN: %{ispc} %s --target=sse4.2-i32x4 --cpu=penryn --emit-asm --nostdlib -o - | FileCheck %s --implicit-check-not "pcmpgtq"
// RUN: %{ispc} %s --target=sse4.2-i32x8 --cpu=penryn --emit-asm --nostdlib -o - | FileCheck %s --implicit-check-not "pcmpgtq"
// RUN: %{ispc} %s --target=sse4.2-i8x16 --emit-asm --nostdlib -o - | FileCheck %s -check-prefix=CHECK_SSE4
// RUN: %{ispc} %s --target=sse4.2-i16x8 --emit-asm --nostdlib -o - | FileCheck %s -check-prefix=CHECK_SSE4
// RUN: %{ispc} %s --target=sse4.2-i32x4 --emit-asm --nostdlib -o - | FileCheck %s -check-prefix=CHECK_SSE4
// RUN: %{ispc} %s --target=sse4.2-i32x8 --emit-asm --nostdlib -o - | FileCheck %s -check-prefix=CHECK_SSE4
// RUN: not %{ispc} %s --nowrap --target=sse4.1-i32x8,sse4.2-i32x8 --nostdlib 2>&1 | FileCheck %s -check-prefix=CHECK_ERROR
// RUN: not %{ispc} %s --nowrap --target=sse4.2-i32x8,sse4.1-i32x8 --nostdlib 2>&1 | FileCheck %s -check-prefix=CHECK_ERROR
// REQUIRES: X86_ENABLED
// CHECK_SSE4: pcmpgtq
// CHECK_ERROR: Error: Can't compile to multiple variants of sse4 target!
bool foo(int64 a, int64 b) {
return a>b;
}