; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc -O0 < %s | FileCheck %s --check-prefixes=O0 ; RUN: llc -O1 < %s | FileCheck %s --check-prefixes=OPT ; RUN: llc -O2 < %s | FileCheck %s --check-prefixes=OPT ; RUN: llc -O3 < %s | FileCheck %s --check-prefixes=OPT target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" @__llvm_gcov_ctr.89 = internal global [2 x i64] zeroinitializer @__llvm_gcov_ctr.109 = internal global [2 x i64] zeroinitializer @__llvm_gcov_ctr.112 = internal global [2 x i64] zeroinitializer @__llvm_gcov_ctr.113 = internal global [2 x i64] zeroinitializer @__llvm_gcov_ctr.154 = internal global [1 x i64] zeroinitializer @__llvm_gcov_ctr.155 = internal global [2 x i64] zeroinitializer @__llvm_gcov_ctr.156 = internal global [2 x i64] zeroinitializer @__llvm_gcov_ctr.157 = internal global [2 x i64] zeroinitializer @__llvm_gcov_ctr.160 = internal global [2 x i64] zeroinitializer @__llvm_gcov_ctr.161 = internal global [2 x i64] zeroinitializer @__llvm_gcov_ctr.189 = internal global [2 x i64] zeroinitializer @__llvm_gcov_ctr.1109 = internal global [2 x i64] zeroinitializer @__llvm_gcov_ctr.1112 = internal global [2 x i64] zeroinitializer @__llvm_gcov_ctr.1113 = internal global [2 x i64] zeroinitializer @__llvm_gcov_ctr.1154 = internal global [1 x i64] zeroinitializer @__llvm_gcov_ctr.1155 = internal global [2 x i64] zeroinitializer @__llvm_gcov_ctr.1156 = internal global [2 x i64] zeroinitializer @__llvm_gcov_ctr.1157 = internal global [2 x i64] zeroinitializer @__llvm_gcov_ctr.1160 = internal global [2 x i64] zeroinitializer @__llvm_gcov_ctr.1161 = internal global [2 x i64] zeroinitializer define dso_local void @independent_load_stores() { ; O0-LABEL: independent_load_stores: ; O0: # %bb.0: ; O0-NEXT: .Lpcsection0: ; O0-NEXT: movq __llvm_gcov_ctr.109, %rax ; O0-NEXT: addq $1, %rax ; O0-NEXT: .Lpcsection1: ; O0-NEXT: movq %rax, __llvm_gcov_ctr.109 ; O0-NEXT: .Lpcsection2: ; O0-NEXT: movq __llvm_gcov_ctr.112, %rax ; O0-NEXT: addq $1, %rax ; O0-NEXT: .Lpcsection3: ; O0-NEXT: movq %rax, __llvm_gcov_ctr.112 ; O0-NEXT: .Lpcsection4: ; O0-NEXT: movq __llvm_gcov_ctr.113, %rax ; O0-NEXT: addq $1, %rax ; O0-NEXT: .Lpcsection5: ; O0-NEXT: movq %rax, __llvm_gcov_ctr.113 ; O0-NEXT: .Lpcsection6: ; O0-NEXT: movq __llvm_gcov_ctr.154, %rax ; O0-NEXT: addq $1, %rax ; O0-NEXT: .Lpcsection7: ; O0-NEXT: movq %rax, __llvm_gcov_ctr.154 ; O0-NEXT: .Lpcsection8: ; O0-NEXT: movq __llvm_gcov_ctr.155, %rax ; O0-NEXT: addq $1, %rax ; O0-NEXT: .Lpcsection9: ; O0-NEXT: movq %rax, __llvm_gcov_ctr.155 ; O0-NEXT: .Lpcsection10: ; O0-NEXT: movq __llvm_gcov_ctr.89, %rax ; O0-NEXT: addq $1, %rax ; O0-NEXT: .Lpcsection11: ; O0-NEXT: movq %rax, __llvm_gcov_ctr.89 ; O0-NEXT: .Lpcsection12: ; O0-NEXT: movq __llvm_gcov_ctr.160, %rax ; O0-NEXT: addq $1, %rax ; O0-NEXT: .Lpcsection13: ; O0-NEXT: movq %rax, __llvm_gcov_ctr.160 ; O0-NEXT: .Lpcsection14: ; O0-NEXT: movq __llvm_gcov_ctr.156, %rax ; O0-NEXT: addq $1, %rax ; O0-NEXT: .Lpcsection15: ; O0-NEXT: movq %rax, __llvm_gcov_ctr.156 ; O0-NEXT: .Lpcsection16: ; O0-NEXT: movq __llvm_gcov_ctr.157, %rax ; O0-NEXT: addq $1, %rax ; O0-NEXT: .Lpcsection17: ; O0-NEXT: movq %rax, __llvm_gcov_ctr.157 ; O0-NEXT: .Lpcsection18: ; O0-NEXT: movq __llvm_gcov_ctr.161, %rax ; O0-NEXT: addq $1, %rax ; O0-NEXT: .Lpcsection19: ; O0-NEXT: movq %rax, __llvm_gcov_ctr.161 ; O0-NEXT: .Lpcsection20: ; O0-NEXT: movq __llvm_gcov_ctr.1109, %rax ; O0-NEXT: addq $1, %rax ; O0-NEXT: .Lpcsection21: ; O0-NEXT: movq %rax, __llvm_gcov_ctr.1109 ; O0-NEXT: .Lpcsection22: ; O0-NEXT: movq __llvm_gcov_ctr.1112, %rax ; O0-NEXT: addq $1, %rax ; O0-NEXT: .Lpcsection23: ; O0-NEXT: movq %rax, __llvm_gcov_ctr.1112 ; O0-NEXT: .Lpcsection24: ; O0-NEXT: movq __llvm_gcov_ctr.1113, %rax ; O0-NEXT: addq $1, %rax ; O0-NEXT: .Lpcsection25: ; O0-NEXT: movq %rax, __llvm_gcov_ctr.1113 ; O0-NEXT: .Lpcsection26: ; O0-NEXT: movq __llvm_gcov_ctr.1154, %rax ; O0-NEXT: addq $1, %rax ; O0-NEXT: .Lpcsection27: ; O0-NEXT: movq %rax, __llvm_gcov_ctr.1154 ; O0-NEXT: .Lpcsection28: ; O0-NEXT: movq __llvm_gcov_ctr.1155, %rax ; O0-NEXT: addq $1, %rax ; O0-NEXT: .Lpcsection29: ; O0-NEXT: movq %rax, __llvm_gcov_ctr.1155 ; O0-NEXT: .Lpcsection30: ; O0-NEXT: movq __llvm_gcov_ctr.189, %rax ; O0-NEXT: addq $1, %rax ; O0-NEXT: .Lpcsection31: ; O0-NEXT: movq %rax, __llvm_gcov_ctr.189 ; O0-NEXT: .Lpcsection32: ; O0-NEXT: movq __llvm_gcov_ctr.1160, %rax ; O0-NEXT: addq $1, %rax ; O0-NEXT: .Lpcsection33: ; O0-NEXT: movq %rax, __llvm_gcov_ctr.1160 ; O0-NEXT: .Lpcsection34: ; O0-NEXT: movq __llvm_gcov_ctr.1156, %rax ; O0-NEXT: addq $1, %rax ; O0-NEXT: .Lpcsection35: ; O0-NEXT: movq %rax, __llvm_gcov_ctr.1156 ; O0-NEXT: .Lpcsection36: ; O0-NEXT: movq __llvm_gcov_ctr.1157, %rax ; O0-NEXT: addq $1, %rax ; O0-NEXT: .Lpcsection37: ; O0-NEXT: movq %rax, __llvm_gcov_ctr.1157 ; O0-NEXT: .Lpcsection38: ; O0-NEXT: movq __llvm_gcov_ctr.1161, %rax ; O0-NEXT: addq $1, %rax ; O0-NEXT: .Lpcsection39: ; O0-NEXT: movq %rax, __llvm_gcov_ctr.1161 ; O0-NEXT: retq ; ; OPT-LABEL: independent_load_stores: ; OPT: # %bb.0: ; OPT-NEXT: .Lpcsection0: ; OPT-NEXT: incq __llvm_gcov_ctr.109(%rip) ; OPT-NEXT: .Lpcsection1: ; OPT-NEXT: incq __llvm_gcov_ctr.112(%rip) ; OPT-NEXT: .Lpcsection2: ; OPT-NEXT: incq __llvm_gcov_ctr.113(%rip) ; OPT-NEXT: .Lpcsection3: ; OPT-NEXT: incq __llvm_gcov_ctr.154(%rip) ; OPT-NEXT: .Lpcsection4: ; OPT-NEXT: incq __llvm_gcov_ctr.155(%rip) ; OPT-NEXT: .Lpcsection5: ; OPT-NEXT: incq __llvm_gcov_ctr.89(%rip) ; OPT-NEXT: .Lpcsection6: ; OPT-NEXT: incq __llvm_gcov_ctr.160(%rip) ; OPT-NEXT: .Lpcsection7: ; OPT-NEXT: incq __llvm_gcov_ctr.156(%rip) ; OPT-NEXT: .Lpcsection8: ; OPT-NEXT: incq __llvm_gcov_ctr.157(%rip) ; OPT-NEXT: .Lpcsection9: ; OPT-NEXT: incq __llvm_gcov_ctr.161(%rip) ; OPT-NEXT: .Lpcsection10: ; OPT-NEXT: incq __llvm_gcov_ctr.1109(%rip) ; OPT-NEXT: .Lpcsection11: ; OPT-NEXT: incq __llvm_gcov_ctr.1112(%rip) ; OPT-NEXT: .Lpcsection12: ; OPT-NEXT: incq __llvm_gcov_ctr.1113(%rip) ; OPT-NEXT: .Lpcsection13: ; OPT-NEXT: incq __llvm_gcov_ctr.1154(%rip) ; OPT-NEXT: .Lpcsection14: ; OPT-NEXT: incq __llvm_gcov_ctr.1155(%rip) ; OPT-NEXT: .Lpcsection15: ; OPT-NEXT: incq __llvm_gcov_ctr.189(%rip) ; OPT-NEXT: .Lpcsection16: ; OPT-NEXT: incq __llvm_gcov_ctr.1160(%rip) ; OPT-NEXT: .Lpcsection17: ; OPT-NEXT: incq __llvm_gcov_ctr.1156(%rip) ; OPT-NEXT: .Lpcsection18: ; OPT-NEXT: incq __llvm_gcov_ctr.1157(%rip) ; OPT-NEXT: .Lpcsection19: ; OPT-NEXT: incq __llvm_gcov_ctr.1161(%rip) ; OPT-NEXT: retq %1 = load i64, ptr @__llvm_gcov_ctr.109, align 8, !pcsections !0 %2 = add i64 %1, 1 store i64 %2, ptr @__llvm_gcov_ctr.109, align 8, !pcsections !0 %3 = load i64, ptr @__llvm_gcov_ctr.112, align 8, !pcsections !0 %4 = add i64 %3, 1 store i64 %4, ptr @__llvm_gcov_ctr.112, align 8, !pcsections !0 %5 = load i64, ptr @__llvm_gcov_ctr.113, align 8, !pcsections !0 %6 = add i64 %5, 1 store i64 %6, ptr @__llvm_gcov_ctr.113, align 8, !pcsections !0 %7 = load i64, ptr @__llvm_gcov_ctr.154, align 8, !pcsections !0 %8 = add i64 %7, 1 store i64 %8, ptr @__llvm_gcov_ctr.154, align 8, !pcsections !0 %9 = load i64, ptr @__llvm_gcov_ctr.155, align 8, !pcsections !0 %10 = add i64 %9, 1 store i64 %10, ptr @__llvm_gcov_ctr.155, align 8, !pcsections !0 %11 = load i64, ptr @__llvm_gcov_ctr.89, align 8, !pcsections !0 %12 = add i64 %11, 1 store i64 %12, ptr @__llvm_gcov_ctr.89, align 8, !pcsections !0 %13 = load i64, ptr @__llvm_gcov_ctr.160, align 8, !pcsections !0 %14 = add i64 %13, 1 store i64 %14, ptr @__llvm_gcov_ctr.160, align 8, !pcsections !0 %15 = load i64, ptr @__llvm_gcov_ctr.156, align 8, !pcsections !0 %16 = add i64 %15, 1 store i64 %16, ptr @__llvm_gcov_ctr.156, align 8, !pcsections !0 %17 = load i64, ptr @__llvm_gcov_ctr.157, align 8, !pcsections !0 %18 = add i64 %17, 1 store i64 %18, ptr @__llvm_gcov_ctr.157, align 8, !pcsections !0 %19 = load i64, ptr @__llvm_gcov_ctr.161, align 8, !pcsections !0 %20 = add i64 %19, 1 store i64 %20, ptr @__llvm_gcov_ctr.161, align 8, !pcsections !0 %21 = load i64, ptr @__llvm_gcov_ctr.1109, align 8, !pcsections !0 %22 = add i64 %21, 1 store i64 %22, ptr @__llvm_gcov_ctr.1109, align 8, !pcsections !0 %23 = load i64, ptr @__llvm_gcov_ctr.1112, align 8, !pcsections !0 %24 = add i64 %23, 1 store i64 %24, ptr @__llvm_gcov_ctr.1112, align 8, !pcsections !0 %25 = load i64, ptr @__llvm_gcov_ctr.1113, align 8, !pcsections !0 %26 = add i64 %25, 1 store i64 %26, ptr @__llvm_gcov_ctr.1113, align 8, !pcsections !0 %27 = load i64, ptr @__llvm_gcov_ctr.1154, align 8, !pcsections !0 %28 = add i64 %27, 1 store i64 %28, ptr @__llvm_gcov_ctr.1154, align 8, !pcsections !0 %29 = load i64, ptr @__llvm_gcov_ctr.1155, align 8, !pcsections !0 %30 = add i64 %29, 1 store i64 %30, ptr @__llvm_gcov_ctr.1155, align 8, !pcsections !0 %31 = load i64, ptr @__llvm_gcov_ctr.189, align 8, !pcsections !0 %32 = add i64 %31, 1 store i64 %32, ptr @__llvm_gcov_ctr.189, align 8, !pcsections !0 %33 = load i64, ptr @__llvm_gcov_ctr.1160, align 8, !pcsections !0 %34 = add i64 %33, 1 store i64 %34, ptr @__llvm_gcov_ctr.1160, align 8, !pcsections !0 %35 = load i64, ptr @__llvm_gcov_ctr.1156, align 8, !pcsections !0 %36 = add i64 %35, 1 store i64 %36, ptr @__llvm_gcov_ctr.1156, align 8, !pcsections !0 %37 = load i64, ptr @__llvm_gcov_ctr.1157, align 8, !pcsections !0 %38 = add i64 %37, 1 store i64 %38, ptr @__llvm_gcov_ctr.1157, align 8, !pcsections !0 %39 = load i64, ptr @__llvm_gcov_ctr.1161, align 8, !pcsections !0 %40 = add i64 %39, 1 store i64 %40, ptr @__llvm_gcov_ctr.1161, align 8, !pcsections !0 ret void } !0 = !{!"foo"}