forked from OSchip/llvm-project
35 lines
977 B
C++
35 lines
977 B
C++
|
// RUN: %clang_cc1 -target-feature +vsx -triple powerpc64-unknown-unknown -emit-llvm %s \
|
||
|
// RUN: -o - | FileCheck %s
|
||
|
|
||
|
#include <altivec.h>
|
||
|
|
||
|
// CHECK-LABEL: @_Z5test1Dv8_tS_
|
||
|
// CHECK: @llvm.ppc.altivec.vcmpequh.p
|
||
|
bool test1(vector unsigned short v1, vector unsigned short v2) {
|
||
|
return v1 == v2;
|
||
|
}
|
||
|
|
||
|
// CHECK-LABEL: @_Z5test2Dv2_mS_Dv2_lS0_Dv2_yS1_Dv2_xS2_Dv2_dS3_
|
||
|
bool test2(vector unsigned long v1, vector unsigned long v2,
|
||
|
vector long v3, vector long v4,
|
||
|
vector unsigned long long v5, vector unsigned long long v6,
|
||
|
vector long long v7, vector long long v8,
|
||
|
vector double v9, vector double v10) {
|
||
|
// CHECK: @llvm.ppc.altivec.vcmpequd.p
|
||
|
bool res = v1 == v2;
|
||
|
|
||
|
// CHECK: @llvm.ppc.altivec.vcmpequd.p
|
||
|
res |= v3 == v4;
|
||
|
|
||
|
// CHECK: @llvm.ppc.altivec.vcmpequd.p
|
||
|
res |= v5 == v6;
|
||
|
|
||
|
// CHECK: @llvm.ppc.altivec.vcmpequd.p
|
||
|
res |= v7 == v8;
|
||
|
|
||
|
// CHECK: @llvm.ppc.vsx.xvcmpeqdp.p
|
||
|
res |= v9 == v10;
|
||
|
return res;
|
||
|
}
|
||
|
|