157 lines · c
1// REQUIRES: hexagon-registered-target2// RUN: %clang_cc1 -triple hexagon-unknown-elf -target-cpu hexagonv60 -emit-llvm %s -o - | FileCheck %s3 4// CHECK-LABEL: test15// CHECK: @llvm.hexagon.L2.loadrub.pci6unsigned char test1(int mod, void *start) {7 unsigned char *base = start;8 return __builtin_HEXAGON_L2_loadrub_pci(&base, 4, mod, start);9}10 11// CHECK-LABEL: test212// CHECK: @llvm.hexagon.L2.loadrb.pci13unsigned char test2(int mod, void *start) {14 char *base = start;15 return __builtin_HEXAGON_L2_loadrb_pci(&base, 4, mod, start);16}17 18// CHECK-LABEL: test319// CHECK: @llvm.hexagon.L2.loadruh.pci20unsigned short test3(int mod, void *start) {21 unsigned short *base = start;22 return __builtin_HEXAGON_L2_loadruh_pci(&base, 4, mod, start);23}24 25// CHECK-LABEL: test426// CHECK: @llvm.hexagon.L2.loadrh.pci27short test4(int mod, void *start) {28 short *base = start;29 return __builtin_HEXAGON_L2_loadrh_pci(&base, 4, mod, start);30}31 32// CHECK-LABEL: test533// CHECK: @llvm.hexagon.L2.loadri.pci34int test5(int mod, void *start) {35 int *base = start;36 return __builtin_HEXAGON_L2_loadri_pci(&base, 4, mod, start);37}38 39// CHECK-LABEL: test640// CHECK: @llvm.hexagon.L2.loadrd.pci41long long test6(int mod, void *start) {42 long long *base = start;43 return __builtin_HEXAGON_L2_loadrd_pci(&base, 8, mod, start);44}45 46// CHECK-LABEL: test747// CHECK: @llvm.hexagon.L2.loadrub.pcr48unsigned char test7(int mod, void *start) {49 unsigned char *base = start;50 return __builtin_HEXAGON_L2_loadrub_pcr(&base, mod, start);51}52 53// CHECK-LABEL: test854// CHECK: @llvm.hexagon.L2.loadrb.pcr55unsigned char test8(int mod, void *start) {56 char *base = start;57 return __builtin_HEXAGON_L2_loadrb_pcr(&base, mod, start);58}59 60// CHECK-LABEL: test961// CHECK: @llvm.hexagon.L2.loadruh.pcr62unsigned short test9(int mod, void *start) {63 unsigned short *base = start;64 return __builtin_HEXAGON_L2_loadruh_pcr(&base, mod, start);65}66 67// CHECK-LABEL: test1068// CHECK: @llvm.hexagon.L2.loadrh.pcr69short test10(int mod, void *start) {70 short *base = start;71 return __builtin_HEXAGON_L2_loadrh_pcr(&base, mod, start);72}73 74// CHECK-LABEL: test1175// CHECK: @llvm.hexagon.L2.loadri.pcr76int test11(int mod, void *start) {77 int *base = start;78 return __builtin_HEXAGON_L2_loadri_pcr(&base, mod, start);79}80 81// CHECK-LABEL: test1282// CHECK: @llvm.hexagon.L2.loadrd.pcr83long long test12(int mod, void *start) {84 long long *base = start;85 return __builtin_HEXAGON_L2_loadrd_pcr(&base, mod, start);86}87 88// CHECK-LABEL: test1389// CHECK: @llvm.hexagon.S2.storerb.pci90void test13(int mod, void *start, char v) {91 void *base = start;92 __builtin_HEXAGON_S2_storerb_pci(&base, 4, mod, v, start);93}94 95// CHECK-LABEL: test1496// CHECK: @llvm.hexagon.S2.storerh.pci97void test14(int mod, void *start, short v) {98 void *base = start;99 __builtin_HEXAGON_S2_storerh_pci(&base, 4, mod, v, start);100}101 102// CHECK-LABEL: test15103// CHECK: @llvm.hexagon.S2.storerf.pci104void test15(int mod, void *start, short v) {105 void *base = start;106 __builtin_HEXAGON_S2_storerf_pci(&base, 4, mod, v, start);107}108 109// CHECK-LABEL: test16110// CHECK: @llvm.hexagon.S2.storeri.pci111void test16(int mod, void *start, int v) {112 void *base = start;113 __builtin_HEXAGON_S2_storeri_pci(&base, 4, mod, v, start);114}115 116// CHECK-LABEL: test17117// CHECK: @llvm.hexagon.S2.storerd.pci118void test17(int mod, void *start, long long v) {119 void *base = start;120 __builtin_HEXAGON_S2_storerd_pci(&base, 8, mod, v, start);121}122 123// CHECK-LABEL: test18124// CHECK: @llvm.hexagon.S2.storerb.pcr125void test18(int mod, void *start, char v) {126 void *base = start;127 __builtin_HEXAGON_S2_storerb_pcr(&base, mod, v, start);128}129 130// CHECK-LABEL: test19131// CHECK: @llvm.hexagon.S2.storerh.pcr132void test19(int mod, void *start, short v) {133 void *base = start;134 __builtin_HEXAGON_S2_storerh_pcr(&base, mod, v, start);135}136 137// CHECK-LABEL: test20138// CHECK: @llvm.hexagon.S2.storerf.pcr139void test20(int mod, void *start, short v) {140 void *base = start;141 __builtin_HEXAGON_S2_storerf_pcr(&base, mod, v, start);142}143 144// CHECK-LABEL: test21145// CHECK: @llvm.hexagon.S2.storeri.pcr146void test21(int mod, void *start, int v) {147 void *base = start;148 __builtin_HEXAGON_S2_storeri_pcr(&base, mod, v, start);149}150 151// CHECK-LABEL: test22152// CHECK: @llvm.hexagon.S2.storerd.pcr153void test22(int mod, void *start, long long v) {154 void *base = start;155 __builtin_HEXAGON_S2_storerd_pcr(&base, mod, v, start);156}157