brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.3 KiB · ce8c612 Raw
91 lines · c
1 2// RUN: %clang_cc1 -triple x86_64-linux-gnu -gkey-instructions -x c++ %s -debug-info-kind=line-tables-only -gno-column-info -emit-llvm -o - -ftrivial-auto-var-init=zero -fenable-matrix -disable-llvm-passes \3// RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not atomRank4 5// RUN: %clang_cc1 -triple x86_64-linux-gnu -gkey-instructions -x c %s -debug-info-kind=line-tables-only -gno-column-info -emit-llvm -o - -ftrivial-auto-var-init=zero -fenable-matrix -disable-llvm-passes \6// RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not atomRank7 8typedef float m2x2 __attribute__((matrix_type(2, 2)));9m2x2 mat;10float f4[4];11float f8[8];12int v = 3;13 14void fun() {15// CHECK: %a = alloca ptr, align 816// CHECK: %0 = alloca i8, i64 4{{.*}}, !dbg [[G1R2:!.*]]17// CHECK: call void @llvm.memset{{.*}}, !dbg [[G1R1:!.*]], !annotation18// CHECK: store ptr %0, ptr %a{{.*}}, !dbg [[G1R1:!.*]]19    void *a = __builtin_alloca(4);20 21// CHECK: %1 = alloca i8, i64 4{{.*}}, !dbg [[G2R2:!.*]]22// CHECK: call void @llvm.memset{{.*}}, !dbg [[G2R1:!.*]], !annotation23// CHECK: store ptr %1, ptr %b{{.*}}, !dbg [[G2R1:!.*]]24    void *b = __builtin_alloca_with_align(4, 8);25 26// CHECK: %2 = load <4 x float>, ptr @mat{{.*}}, !dbg [[G3R2:!.*]]27// CHECK: call void @llvm.matrix.column.major.store.v4f32{{.*}}, !dbg [[G3R1:!.*]]28    __builtin_matrix_column_major_store(mat, f4, sizeof(float) * 2);29 30// CHECK: call void @llvm.memset{{.*}}, !dbg [[G4R1:!.*]]31    __builtin_bzero(f4, sizeof(float) * 2);32 33// CHECK: call void @llvm.memmove{{.*}}, !dbg [[G5R1:!.*]]34    __builtin_bcopy(f4, f8, sizeof(float) * 4);35 36// CHECK: call void @llvm.memcpy{{.*}}, !dbg [[G6R1:!.*]]37    __builtin_memcpy(f4, f8, sizeof(float) * 4);38 39// CHECK: call void @llvm.memcpy{{.*}}, !dbg [[G7R1:!.*]]40    __builtin_mempcpy(f4, f8, sizeof(float) * 4);41 42// CHECK: call void @llvm.memcpy{{.*}}, !dbg [[G8R1:!.*]]43    __builtin_memcpy_inline(f4, f8, sizeof(float) * 4);44 45// CHECK: call void @llvm.memcpy{{.*}}, !dbg [[G9R1:!.*]]46    __builtin___memcpy_chk(f4, f8, sizeof(float) * 4, -1);47 48// CHECK: call void @llvm.memmove{{.*}}, !dbg [[G10R1:!.*]]49    __builtin___memmove_chk(f4, f8, sizeof(float) * 4, -1);50 51// CHECK: call void @llvm.memmove{{.*}}, !dbg [[G11R1:!.*]]52    __builtin_memmove(f4, f8, sizeof(float) * 4);53 54// CHECK: call void @llvm.memset{{.*}}, !dbg [[G12R1:!.*]]55    __builtin_memset(f4, 0, sizeof(float) * 4);56 57// CHECK: call void @llvm.memset{{.*}}, !dbg [[G13R1:!.*]]58    __builtin_memset_inline(f4, 0, sizeof(float) * 4);59 60// CHECK: call void @llvm.memset{{.*}}, !dbg [[G14R1:!.*]]61    __builtin___memset_chk(f4, 0, sizeof(float), -1);62 63// CHECK: %3 = load i32, ptr @v{{.*}}, !dbg [[G15R3:!.*]]64// CHECK-NEXT: %4 = trunc i32 %3 to i8, !dbg [[G15R2:!.*]]65// CHECK-NEXT: call void @llvm.memset{{.*}}, !dbg [[G15R1:!.*]]66    __builtin_memset(f4, v, sizeof(float) * 4);67// CHECK: ret{{.*}}, !dbg [[RET:!.*]]68}69 70// CHECK: [[G1R2]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 2)71// CHECK: [[G1R1]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 1)72// CHECK: [[G2R2]] = !DILocation({{.*}}, atomGroup: 2, atomRank: 2)73// CHECK: [[G2R1]] = !DILocation({{.*}}, atomGroup: 2, atomRank: 1)74// CHECK: [[G3R2]] = !DILocation({{.*}}, atomGroup: 3, atomRank: 2)75// CHECK: [[G3R1]] = !DILocation({{.*}}, atomGroup: 3, atomRank: 1)76// CHECK: [[G4R1]] = !DILocation({{.*}}, atomGroup: 4, atomRank: 1)77// CHECK: [[G5R1]] = !DILocation({{.*}}, atomGroup: 5, atomRank: 1)78// CHECK: [[G6R1]] = !DILocation({{.*}}, atomGroup: 6, atomRank: 1)79// CHECK: [[G7R1]] = !DILocation({{.*}}, atomGroup: 7, atomRank: 1)80// CHECK: [[G8R1]] = !DILocation({{.*}}, atomGroup: 8, atomRank: 1)81// CHECK: [[G9R1]] = !DILocation({{.*}}, atomGroup: 9, atomRank: 1)82// CHECK: [[G10R1]] = !DILocation({{.*}}, atomGroup: 10, atomRank: 1)83// CHECK: [[G11R1]] = !DILocation({{.*}}, atomGroup: 11, atomRank: 1)84// CHECK: [[G12R1]] = !DILocation({{.*}}, atomGroup: 12, atomRank: 1)85// CHECK: [[G13R1]] = !DILocation({{.*}}, atomGroup: 13, atomRank: 1)86// CHECK: [[G14R1]] = !DILocation({{.*}}, atomGroup: 14, atomRank: 1)87// CHECK: [[G15R3]] = !DILocation({{.*}}, atomGroup: 15, atomRank: 3)88// CHECK: [[G15R2]] = !DILocation({{.*}}, atomGroup: 15, atomRank: 2)89// CHECK: [[G15R1]] = !DILocation({{.*}}, atomGroup: 15, atomRank: 1)90// CHECK: [[RET]] = !DILocation({{.*}}, atomGroup: 16, atomRank: 1)91