• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2; RUN: opt < %s -instcombine -S | FileCheck %s
3target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
4target triple = "x86_64-unknown-linux-gnu"
5
6; Function Attrs: nounwind uwtable
7define i32 @foo1(i32* align 32 %a) #0 {
8; CHECK-LABEL: @foo1(
9; CHECK-NEXT:  entry:
10; CHECK-NEXT:    [[TMP0:%.*]] = load i32, i32* [[A:%.*]], align 32
11; CHECK-NEXT:    ret i32 [[TMP0]]
12;
13entry:
14  %0 = load i32, i32* %a, align 4
15  ret i32 %0
16
17}
18
19define i32 @foo2(i32* align 32 %a) #0 {
20; CHECK-LABEL: @foo2(
21; CHECK-NEXT:  entry:
22; CHECK-NEXT:    [[V:%.*]] = call i32* @func1(i32* [[A:%.*]])
23; CHECK-NEXT:    [[TMP0:%.*]] = load i32, i32* [[A]], align 32
24; CHECK-NEXT:    ret i32 [[TMP0]]
25;
26entry:
27  %v = call i32* @func1(i32* %a)
28  %0 = load i32, i32* %v, align 4
29  ret i32 %0
30
31}
32
33declare i32* @func1(i32* returned) nounwind
34
35