95 lines · c
1// RUN: not %clang_cc1 -triple powerpc64le-unknown-linux-gnu -target-feature -mma \2// RUN: -target-cpu pwr10 %s -emit-llvm-only 2>&1 | \3// RUN: FileCheck --check-prefixes=CHECK,ISA_FUTURE %s4// RUN: not %clang_cc1 -triple powerpc64le-unknown-linux-gnu -target-feature -mma \5// RUN: -target-cpu future %s -emit-llvm-only 2>&1 | \6// RUN: FileCheck --check-prefixes=CHECK,ISA_FUTURE %s7// RUN: not %clang_cc1 -triple powerpc64le-unknown-linux-gnu -target-feature \8// RUN: -isa-future-instructions -target-cpu future %s -emit-llvm-only 2>&1 | \9// RUN: FileCheck --check-prefix=ISA_FUTURE %s10 11//__attribute__((target("no-mma")))12__attribute__((target("no-mma")))13void test_mma(unsigned char *vdmrpp, unsigned char *vdmrp, unsigned char *vpp, vector unsigned char vc) {14 __dmr2048 vdmrpair = *((__dmr2048 *)vdmrpp);15 __dmr1024 vdmr = *((__dmr1024 *)vdmrp);16 __vector_pair vp = *((__vector_pair *)vpp);17 __builtin_mma_dmxvi8gerx4(&vdmr, vp, vc);18 __builtin_mma_pmdmxvi8gerx4(&vdmr, vp, vc, 0, 0, 0);19 __builtin_mma_dmxvi8gerx4pp(&vdmr, vp, vc);20 __builtin_mma_pmdmxvi8gerx4pp(&vdmr, vp, vc, 0, 0, 0);21 __builtin_mma_dmxvi8gerx4spp(&vdmr, vp, vc);22 __builtin_mma_pmdmxvi8gerx4spp(&vdmr, vp, vc, 0, 0, 0);23 __builtin_mma_dmsetdmrz(&vdmr);24 __builtin_mma_dmmr(&vdmr, (__dmr1024*)vpp);25 __builtin_mma_dmxor(&vdmr, (__dmr1024*)vpp);26 __builtin_mma_build_dmr(&vdmr, vc, vc, vc, vc, vc, vc, vc, vc);27 __builtin_mma_disassemble_dmr(vdmrp, &vdmr);28 __builtin_mma_dmsha2hash(&vdmr, &vdmr, 0);29 __builtin_mma_dmsha3hash(&vdmrpair, 0);30 __builtin_mma_dmxxshapad(&vdmr, vc, 0, 0, 0);31 32// CHECK: error: '__builtin_mma_dmxvi8gerx4' needs target feature mma,paired-vector-memops33// CHECK: error: '__builtin_mma_pmdmxvi8gerx4' needs target feature mma,paired-vector-memops34// CHECK: error: '__builtin_mma_dmxvi8gerx4pp' needs target feature mma,paired-vector-memops35// CHECK: error: '__builtin_mma_pmdmxvi8gerx4pp' needs target feature mma,paired-vector-memops36// CHECK: error: '__builtin_mma_dmxvi8gerx4spp' needs target feature mma,paired-vector-memops37// CHECK: error: '__builtin_mma_pmdmxvi8gerx4spp' needs target feature mma,paired-vector-memops38// ISA_FUTURE: error: '__builtin_mma_dmsetdmrz' needs target feature mma,isa-future-instructions39// ISA_FUTURE: error: '__builtin_mma_dmmr' needs target feature mma,isa-future-instructions40// ISA_FUTURE: error: '__builtin_mma_dmxor' needs target feature mma,isa-future-instructions41// ISA_FUTURE: error: '__builtin_mma_build_dmr' needs target feature mma,isa-future-instructions42// ISA_FUTURE: error: '__builtin_mma_disassemble_dmr' needs target feature mma,isa-future-instructions43// CHECK: error: '__builtin_mma_dmsha2hash' needs target feature mma,isa-future-instructions44// CHECK: error: '__builtin_mma_dmsha3hash' needs target feature mma,isa-future-instructions45// CHECK: error: '__builtin_mma_dmxxshapad' needs target feature mma,isa-future-instructions46 47 // DMF VSX Vector bfloat16 GER 2x builtins.48 49 __builtin_mma_dmxvbf16gerx2(&vdmr, vp, vc);50 __builtin_mma_dmxvbf16gerx2nn(&vdmr, vp, vc);51 __builtin_mma_dmxvbf16gerx2np(&vdmr, vp, vc);52 __builtin_mma_dmxvbf16gerx2pn(&vdmr, vp, vc);53 __builtin_mma_dmxvbf16gerx2pp(&vdmr, vp, vc);54 __builtin_mma_pmdmxvbf16gerx2(&vdmr, vp, vc, 0, 0, 0);55 __builtin_mma_pmdmxvbf16gerx2nn(&vdmr, vp, vc, 0, 0, 0);56 __builtin_mma_pmdmxvbf16gerx2np(&vdmr, vp, vc, 0, 0, 0);57 __builtin_mma_pmdmxvbf16gerx2pn(&vdmr, vp, vc, 0, 0, 0);58 __builtin_mma_pmdmxvbf16gerx2pp(&vdmr, vp, vc, 0, 0, 0);59 60// ISA_FUTURE: error: '__builtin_mma_dmxvbf16gerx2' needs target feature mma,isa-future-instructions61// ISA_FUTURE: error: '__builtin_mma_dmxvbf16gerx2nn' needs target feature mma,isa-future-instructions62// ISA_FUTURE: error: '__builtin_mma_dmxvbf16gerx2np' needs target feature mma,isa-future-instructions63// ISA_FUTURE: error: '__builtin_mma_dmxvbf16gerx2pn' needs target feature mma,isa-future-instructions64// ISA_FUTURE: error: '__builtin_mma_dmxvbf16gerx2pp' needs target feature mma,isa-future-instructions65// ISA_FUTURE: error: '__builtin_mma_pmdmxvbf16gerx2' needs target feature mma,isa-future-instructions66// ISA_FUTURE: error: '__builtin_mma_pmdmxvbf16gerx2nn' needs target feature mma,isa-future-instructions67// ISA_FUTURE: error: '__builtin_mma_pmdmxvbf16gerx2np' needs target feature mma,isa-future-instructions68// ISA_FUTURE: error: '__builtin_mma_pmdmxvbf16gerx2pn' needs target feature mma,isa-future-instructions69// ISA_FUTURE: error: '__builtin_mma_pmdmxvbf16gerx2pp' needs target feature mma,isa-future-instructions70 71 // DMF VSX Vector 16-bitFloating-point GER 2x builtins.72 73 __builtin_mma_dmxvf16gerx2(&vdmr, vp, vc);74 __builtin_mma_dmxvf16gerx2nn(&vdmr, vp, vc);75 __builtin_mma_dmxvf16gerx2np(&vdmr, vp, vc);76 __builtin_mma_dmxvf16gerx2pn(&vdmr, vp, vc);77 __builtin_mma_dmxvf16gerx2pp(&vdmr, vp, vc);78 __builtin_mma_pmdmxvf16gerx2(&vdmr, vp, vc, 0, 0, 0);79 __builtin_mma_pmdmxvf16gerx2nn(&vdmr, vp, vc, 0, 0, 0);80 __builtin_mma_pmdmxvf16gerx2np(&vdmr, vp, vc, 0, 0, 0);81 __builtin_mma_pmdmxvf16gerx2pn(&vdmr, vp, vc, 0, 0, 0);82 __builtin_mma_pmdmxvf16gerx2pp(&vdmr, vp, vc, 0, 0, 0);83 84// ISA_FUTURE: error: '__builtin_mma_dmxvf16gerx2' needs target feature mma,isa-future-instructions85// ISA_FUTURE: error: '__builtin_mma_dmxvf16gerx2nn' needs target feature mma,isa-future-instructions86// ISA_FUTURE: error: '__builtin_mma_dmxvf16gerx2np' needs target feature mma,isa-future-instructions87// ISA_FUTURE: error: '__builtin_mma_dmxvf16gerx2pn' needs target feature mma,isa-future-instructions88// ISA_FUTURE: error: '__builtin_mma_dmxvf16gerx2pp' needs target feature mma,isa-future-instructions89// ISA_FUTURE: error: '__builtin_mma_pmdmxvf16gerx2' needs target feature mma,isa-future-instructions90// ISA_FUTURE: error: '__builtin_mma_pmdmxvf16gerx2nn' needs target feature mma,isa-future-instructions91// ISA_FUTURE: error: '__builtin_mma_pmdmxvf16gerx2np' needs target feature mma,isa-future-instructions92// ISA_FUTURE: error: '__builtin_mma_pmdmxvf16gerx2pn' needs target feature mma,isa-future-instructions93// ISA_FUTURE: error: '__builtin_mma_pmdmxvf16gerx2pp' needs target feature mma,isa-future-instructions94}95