brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · e5fd86a Raw
61 lines · c
1// RUN: %clang_cc1 -triple x86_64-unknown-unknown -O0 -emit-llvm -o - %s | FileCheck %s2 3void use(void *);4 5void test_small(void) {6  // CHECK-LABEL: define{{.*}} void @test_small()7  int a[] = {1, 2, 3, 4};8  // CHECK: call void @llvm.memcpy.{{.*}}9  use(a);10}11 12void test_small_same(void) {13  // CHECK-LABEL: define{{.*}} void @test_small_same()14  char a[] = {'a', 'a', 'a', 'a'};15  // CHECK: call void @llvm.memcpy.{{.*}}16  use(a);17}18 19void test_different(void) {20  // CHECK-LABEL: define{{.*}} void @test_different()21  int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};22  // CHECK: call void @llvm.memcpy.{{.*}}23  use(a);24}25 26void test_all_zeros(void) {27  // CHECK-LABEL: define{{.*}} void @test_all_zeros()28  int a[16] = {};29  // CHECK: call void @llvm.memset.{{.*}}30  use(a);31}32 33void test_all_a(void) {34  // CHECK-LABEL: define{{.*}} void @test_all_a()35  char a[] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";36  // CHECK: call void @llvm.memcpy.{{.*}}37  use(a);38}39 40void test_most_zeros(void) {41  // CHECK-LABEL: define{{.*}} void @test_most_zeros()42  int a[16] = {0, 0, 1};43  // CHECK: call void @llvm.memset.{{.*}}44  // CHECK: store i32 145  use(a);46}47 48void test_most_a(void) {49  // CHECK-LABEL: define{{.*}} void @test_most_a()50  char a[] = "aaaaazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";51  // CHECK: call void @llvm.memcpy.{{.*}}52  use(a);53}54 55void test_pointers(void) {56  // CHECK-LABEL: define{{.*}} void @test_pointers()57  void *a[] = {&use, &use, &use, &use, &use, &use};58  // CHECK: call void @llvm.memcpy.{{.*}}59  use(a);60}61