xref: /llvm-project/llvm/test/Transforms/Inline/inline_inv_group.ll (revision 3e39cfe5b4af7a8496049f623cfce177dc1903d6)
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2
2; RUN: opt < %s -passes=inline -S | FileCheck %s
3
4target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
5target triple = "x86_64-unknown-linux-gnu"
6
7define ptr @callee() alwaysinline {
8; CHECK-LABEL: define ptr @callee
9; CHECK-SAME: () #[[ATTR0:[0-9]+]] {
10; CHECK-NEXT:    [[TMP1:%.*]] = call ptr @llvm.strip.invariant.group.p0(ptr null)
11; CHECK-NEXT:    ret ptr [[TMP1]]
12;
13  %1 = call ptr @llvm.strip.invariant.group.p0(ptr null)
14  ret ptr %1
15}
16
17define ptr @caller() null_pointer_is_valid {
18; CHECK-LABEL: define ptr @caller
19; CHECK-SAME: () #[[ATTR1:[0-9]+]] {
20; CHECK-NEXT:    [[TMP1:%.*]] = call ptr @llvm.strip.invariant.group.p0(ptr null)
21; CHECK-NEXT:    ret ptr [[TMP1]]
22;
23  %1 = call ptr @callee()
24  ret ptr %1
25}
26
27declare ptr @llvm.strip.invariant.group.p0(ptr)
28