xref: /llvm-project/llvm/test/Transforms/CodeGenPrepare/X86/invariant.group.ll (revision f1ec0d12bb0843f0deab83ef2b5cf1339cbc4f0b)
1*f1ec0d12SNick Anderson; RUN: opt -passes='require<profile-summary>,function(codegenprepare)' -S -mtriple=x86_64 < %s | FileCheck %s
25a56a25bSFangrui Song
35a56a25bSFangrui Song@tmp = global i8 0
45a56a25bSFangrui Song
55a56a25bSFangrui Song; CHECK-LABEL: define void @foo() {
65a56a25bSFangrui Songdefine void @foo() {
75a56a25bSFangrui Songenter:
85a56a25bSFangrui Song  ; CHECK-NOT: !invariant.group
9d9e51e75SMatt Arsenault  ; CHECK-NOT: @llvm.launder.invariant.group.p0(
10d9e51e75SMatt Arsenault  ; CHECK: %val = load i8, ptr @tmp, align 1{{$}}
11d9e51e75SMatt Arsenault  %val = load i8, ptr @tmp, !invariant.group !0
12d9e51e75SMatt Arsenault  %ptr = call ptr @llvm.launder.invariant.group.p0(ptr @tmp)
135a56a25bSFangrui Song
14d9e51e75SMatt Arsenault  ; CHECK: store i8 42, ptr @tmp, align 1{{$}}
15d9e51e75SMatt Arsenault  store i8 42, ptr %ptr, !invariant.group !0
165a56a25bSFangrui Song
175a56a25bSFangrui Song  ret void
185a56a25bSFangrui Song}
195a56a25bSFangrui Song; CHECK-LABEL: }
205a56a25bSFangrui Song
215a56a25bSFangrui Song; CHECK-LABEL: define void @foo2() {
225a56a25bSFangrui Songdefine void @foo2() {
235a56a25bSFangrui Songenter:
245a56a25bSFangrui Song  ; CHECK-NOT: !invariant.group
25d9e51e75SMatt Arsenault  ; CHECK-NOT: @llvm.strip.invariant.group.p0(
26d9e51e75SMatt Arsenault  ; CHECK: %val = load i8, ptr @tmp, align 1{{$}}
27d9e51e75SMatt Arsenault  %val = load i8, ptr @tmp, !invariant.group !0
28d9e51e75SMatt Arsenault  %ptr = call ptr @llvm.strip.invariant.group.p0(ptr @tmp)
295a56a25bSFangrui Song
30d9e51e75SMatt Arsenault  ; CHECK: store i8 42, ptr @tmp, align 1{{$}}
31d9e51e75SMatt Arsenault  store i8 42, ptr %ptr, !invariant.group !0
325a56a25bSFangrui Song
335a56a25bSFangrui Song  ret void
345a56a25bSFangrui Song}
355a56a25bSFangrui Song; CHECK-LABEL: }
365a56a25bSFangrui Song
375a56a25bSFangrui Song
38d9e51e75SMatt Arsenaultdeclare ptr @llvm.launder.invariant.group.p0(ptr)
39d9e51e75SMatt Arsenaultdeclare ptr @llvm.strip.invariant.group.p0(ptr)
405a56a25bSFangrui Song!0 = !{}
41