| // REQUIRES: hexagon-registered-target |
| |
| // RUN: %clang_cc1 -O0 -internal-isystem %S/../../lib/Headers/ \ |
| // RUN: -target-cpu hexagonv68 -triple hexagon-unknown-elf \ |
| // RUN: -target-feature +hvx-length128b -target-feature +hvxv68 \ |
| // RUN: -emit-llvm %s -o - | FileCheck --check-prefix=CHECK %s |
| |
| // RUN: %clang_cc1 -O0 -internal-isystem %S/../../lib/Headers/ \ |
| // RUN: -target-cpu hexagonv68 -triple hexagon-unknown-elf -DDIRECT \ |
| // RUN: -target-feature +hvx-length128b -target-feature +hvxv68 \ |
| // RUN: -emit-llvm %s -o - | FileCheck --check-prefix=CHECK %s |
| |
| // RUN: %clang_cc1 -O0 -internal-isystem %S/../../lib/Headers/ \ |
| // RUN: -target-cpu hexagonv68 -triple hexagon-unknown-elf -x c++ \ |
| // RUN: -target-feature +hvx-length128b -target-feature +hvxv68 \ |
| // RUN: -emit-llvm %s -o - | FileCheck --check-prefix=CHECK %s |
| |
| // RUN: %clang_cc1 -O0 -internal-isystem %S/../../lib/Headers/ \ |
| // RUN: -target-cpu hexagonv68 -triple hexagon-unknown-elf \ |
| // RUN: -target-feature +hvx-length64b -target-feature +hvxv68 \ |
| // RUN: -emit-llvm %s -o - | FileCheck --check-prefix=CHECK-64 %s |
| |
| #ifdef DIRECT |
| #include <hvx_hexagon_protos.h> |
| #else |
| #include <hexagon_protos.h> |
| #endif |
| #include <hexagon_types.h> |
| |
| // expected-no-diagnostics |
| |
| void test_hvx_protos(float a, unsigned int b) { |
| HVX_VectorPair c; |
| // CHECK-64: call <32 x i32> @llvm.hexagon.V6.v6mpyhubs10 |
| // CHECK: call <64 x i32> @llvm.hexagon.V6.v6mpyhubs10.128B |
| c = Q6_Ww_v6mpy_WubWbI_h(c, c, 12); |
| } |