brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 1a52169 Raw
47 lines · cpp
1// RUN: %clang_cc1 -triple=x86_64-apple-darwin  -emit-llvm -o - %s | FileCheck %s2 3struct s {4  char filler [128];5  volatile int x;6};7 8struct s gs;9 10void foo (void) {11  struct s ls;12  ls = ls;13  gs = gs;14  ls = gs;15}16// CHECK-LABEL: define{{.*}} void @_Z3foov()17// CHECK: %[[LS:.*]] = alloca %struct.s, align 418// CHECK-NEXT:  call void @llvm.memcpy.{{.*}}(ptr align 4 %[[LS]], ptr align 4 %[[LS]], i64 132, i1 true)19// CHECK-NEXT:  call void @llvm.memcpy.{{.*}}(ptr align 4 @gs, ptr align 4 @gs, i64 132, i1 true)20// CHECK-NEXT:  call void @llvm.memcpy.{{.*}}(ptr align 4 %[[LS]], ptr align 4 @gs, i64 132, i1 true)21 22 23struct s1 {24  struct s y;25};26 27struct s1 s;28 29void fee (void) {30  s = s;31  s.y = gs;32}33// CHECK-LABEL: define{{.*}} void @_Z3feev()34// CHECK: call void @llvm.memcpy.{{.*}}(ptr align 4 @s, ptr align 4 @s, i64 132, i1 true)35// CHECK-NEXT: call void @llvm.memcpy.{{.*}}(ptr align 4 @s, ptr align 4 @gs, i64 132, i1 true)36 37struct d : s1 {38};39 40d gd;41 42void gorf(void) {43  gd = gd;44}45// CHECK-LABEL: define{{.*}} void @_Z4gorfv()46// CHECK:   call void @llvm.memcpy.{{.*}}(ptr align 4 @gd, ptr align 4 @gd, i64 132, i1 true)47