Skip to content

Commit 603a39b

Browse files
Run update_test_checks.py on test cases.
In this way, each instruction has a line, and diffs will be more clear. Differential Revision: https://reviews.llvm.org/D115006
1 parent c6cfd38 commit 603a39b

File tree

1 file changed

+62
-19
lines changed

1 file changed

+62
-19
lines changed

llvm/test/Transforms/SROA/alloca-struct.ll

Lines changed: 62 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
12
; RUN: opt < %s -sroa -S | FileCheck %s
23
; RUN: opt < %s -passes=sroa -S | FileCheck %s
34
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
@@ -14,17 +15,33 @@ target triple = "x86_64-unknown-linux-gnu"
1415
define i64 @test_struct_of_int_char(i1 zeroext %test, i64 ()* %p) {
1516
; CHECK-LABEL: @test_struct_of_int_char(
1617
; CHECK-NEXT: entry:
17-
; COM: Check that registers are used and alloca instructions are eliminated.
18-
; CHECK-NOT: alloca
18+
; CHECK-NEXT: br i1 [[TEST:%.*]], label [[IF_THEN:%.*]], label [[IF_END:%.*]]
1919
; CHECK: if.then:
2020
; CHECK-NEXT: br label [[RETURN:%.*]]
2121
; CHECK: if.end:
22-
; CHECK-NEXT: call i64 [[P:%.*]]()
23-
; CHECK: br label [[RETURN]]
22+
; CHECK-NEXT: [[CALL:%.*]] = call i64 [[P:%.*]]()
23+
; CHECK-NEXT: [[RETVAL_SROA_0_0_EXTRACT_TRUNC:%.*]] = trunc i64 [[CALL]] to i32
24+
; CHECK-NEXT: [[RETVAL_SROA_3_0_EXTRACT_SHIFT:%.*]] = lshr i64 [[CALL]], 32
25+
; CHECK-NEXT: [[RETVAL_SROA_3_0_EXTRACT_TRUNC:%.*]] = trunc i64 [[RETVAL_SROA_3_0_EXTRACT_SHIFT]] to i8
26+
; CHECK-NEXT: [[RETVAL_SROA_4_0_EXTRACT_SHIFT:%.*]] = lshr i64 [[CALL]], 40
27+
; CHECK-NEXT: [[RETVAL_SROA_4_0_EXTRACT_TRUNC:%.*]] = trunc i64 [[RETVAL_SROA_4_0_EXTRACT_SHIFT]] to i24
28+
; CHECK-NEXT: br label [[RETURN]]
2429
; CHECK: return:
25-
; COM: Check there are more than one PHI nodes to select scalarized values.
26-
; CHECK-COUNT-3: phi
27-
; CHECK: ret i64
30+
; CHECK-NEXT: [[RETVAL_SROA_4_SROA_0_0:%.*]] = phi i24 [ undef, [[IF_THEN]] ], [ [[RETVAL_SROA_4_0_EXTRACT_TRUNC]], [[IF_END]] ]
31+
; CHECK-NEXT: [[RETVAL_SROA_3_0:%.*]] = phi i8 [ 0, [[IF_THEN]] ], [ [[RETVAL_SROA_3_0_EXTRACT_TRUNC]], [[IF_END]] ]
32+
; CHECK-NEXT: [[RETVAL_SROA_0_0:%.*]] = phi i32 [ 0, [[IF_THEN]] ], [ [[RETVAL_SROA_0_0_EXTRACT_TRUNC]], [[IF_END]] ]
33+
; CHECK-NEXT: [[RETVAL_SROA_4_0_INSERT_EXT:%.*]] = zext i24 [[RETVAL_SROA_4_SROA_0_0]] to i64
34+
; CHECK-NEXT: [[RETVAL_SROA_4_0_INSERT_SHIFT:%.*]] = shl i64 [[RETVAL_SROA_4_0_INSERT_EXT]], 40
35+
; CHECK-NEXT: [[RETVAL_SROA_4_0_INSERT_MASK:%.*]] = and i64 undef, 1099511627775
36+
; CHECK-NEXT: [[RETVAL_SROA_4_0_INSERT_INSERT:%.*]] = or i64 [[RETVAL_SROA_4_0_INSERT_MASK]], [[RETVAL_SROA_4_0_INSERT_SHIFT]]
37+
; CHECK-NEXT: [[RETVAL_SROA_3_0_INSERT_EXT:%.*]] = zext i8 [[RETVAL_SROA_3_0]] to i64
38+
; CHECK-NEXT: [[RETVAL_SROA_3_0_INSERT_SHIFT:%.*]] = shl i64 [[RETVAL_SROA_3_0_INSERT_EXT]], 32
39+
; CHECK-NEXT: [[RETVAL_SROA_3_0_INSERT_MASK:%.*]] = and i64 [[RETVAL_SROA_4_0_INSERT_INSERT]], -1095216660481
40+
; CHECK-NEXT: [[RETVAL_SROA_3_0_INSERT_INSERT:%.*]] = or i64 [[RETVAL_SROA_3_0_INSERT_MASK]], [[RETVAL_SROA_3_0_INSERT_SHIFT]]
41+
; CHECK-NEXT: [[RETVAL_SROA_0_0_INSERT_EXT:%.*]] = zext i32 [[RETVAL_SROA_0_0]] to i64
42+
; CHECK-NEXT: [[RETVAL_SROA_0_0_INSERT_MASK:%.*]] = and i64 [[RETVAL_SROA_3_0_INSERT_INSERT]], -4294967296
43+
; CHECK-NEXT: [[RETVAL_SROA_0_0_INSERT_INSERT:%.*]] = or i64 [[RETVAL_SROA_0_0_INSERT_MASK]], [[RETVAL_SROA_0_0_INSERT_EXT]]
44+
; CHECK-NEXT: ret i64 [[RETVAL_SROA_0_0_INSERT_INSERT]]
2845
;
2946
entry:
3047
%retval = alloca %struct.RetValIntChar, align 4
@@ -53,16 +70,28 @@ return: ; preds = %if.end, %if.then
5370
define i64 @test_struct_of_two_int(i1 zeroext %test, i64 ()* %p) {
5471
; CHECK-LABEL: @test_struct_of_two_int(
5572
; CHECK-NEXT: entry:
56-
; CHECK-NOT: alloca
73+
; CHECK-NEXT: br i1 [[TEST:%.*]], label [[IF_THEN:%.*]], label [[IF_END:%.*]]
5774
; CHECK: if.then:
5875
; CHECK-NEXT: br label [[RETURN:%.*]]
5976
; CHECK: if.end:
60-
; CHECK-NEXT: call i64
77+
; CHECK-NEXT: [[CALL:%.*]] = call i64 [[P:%.*]]()
78+
; CHECK-NEXT: [[RETVAL_SROA_0_0_EXTRACT_TRUNC:%.*]] = trunc i64 [[CALL]] to i32
79+
; CHECK-NEXT: [[RETVAL_SROA_3_0_EXTRACT_SHIFT:%.*]] = lshr i64 [[CALL]], 32
80+
; CHECK-NEXT: [[RETVAL_SROA_3_0_EXTRACT_TRUNC:%.*]] = trunc i64 [[RETVAL_SROA_3_0_EXTRACT_SHIFT]] to i32
81+
; CHECK-NEXT: br label [[RETURN]]
6182
; CHECK: return:
62-
; COM: Check that there are more than one PHI nodes to select the scalarized values.
63-
; CHECK-COUNT-2: phi
64-
; CHECK: ret i64
83+
; CHECK-NEXT: [[RETVAL_SROA_3_0:%.*]] = phi i32 [ 0, [[IF_THEN]] ], [ [[RETVAL_SROA_3_0_EXTRACT_TRUNC]], [[IF_END]] ]
84+
; CHECK-NEXT: [[RETVAL_SROA_0_0:%.*]] = phi i32 [ 0, [[IF_THEN]] ], [ [[RETVAL_SROA_0_0_EXTRACT_TRUNC]], [[IF_END]] ]
85+
; CHECK-NEXT: [[RETVAL_SROA_3_0_INSERT_EXT:%.*]] = zext i32 [[RETVAL_SROA_3_0]] to i64
86+
; CHECK-NEXT: [[RETVAL_SROA_3_0_INSERT_SHIFT:%.*]] = shl i64 [[RETVAL_SROA_3_0_INSERT_EXT]], 32
87+
; CHECK-NEXT: [[RETVAL_SROA_3_0_INSERT_MASK:%.*]] = and i64 undef, 4294967295
88+
; CHECK-NEXT: [[RETVAL_SROA_3_0_INSERT_INSERT:%.*]] = or i64 [[RETVAL_SROA_3_0_INSERT_MASK]], [[RETVAL_SROA_3_0_INSERT_SHIFT]]
89+
; CHECK-NEXT: [[RETVAL_SROA_0_0_INSERT_EXT:%.*]] = zext i32 [[RETVAL_SROA_0_0]] to i64
90+
; CHECK-NEXT: [[RETVAL_SROA_0_0_INSERT_MASK:%.*]] = and i64 [[RETVAL_SROA_3_0_INSERT_INSERT]], -4294967296
91+
; CHECK-NEXT: [[RETVAL_SROA_0_0_INSERT_INSERT:%.*]] = or i64 [[RETVAL_SROA_0_0_INSERT_MASK]], [[RETVAL_SROA_0_0_INSERT_EXT]]
92+
; CHECK-NEXT: ret i64 [[RETVAL_SROA_0_0_INSERT_INSERT]]
6593
;
94+
6695
entry:
6796
%retval = alloca %struct.RetValTwoInts, align 4
6897
br i1 %test, label %if.then, label %if.end
@@ -91,16 +120,30 @@ return: ; preds = %if.end, %if.then
91120
define i64 @test_one_field_has_runtime_value(i1 zeroext %test, i64 ()* %p) {
92121
; CHECK-LABEL: @test_one_field_has_runtime_value(
93122
; CHECK-NEXT: entry:
94-
; CHECK-NOT: alloca
95-
; CHECK: call void @srand
123+
; CHECK-NEXT: [[CALL:%.*]] = call i64 @time(i64* null)
124+
; CHECK-NEXT: [[CONV:%.*]] = trunc i64 [[CALL]] to i32
125+
; CHECK-NEXT: call void @srand(i32 [[CONV]])
126+
; CHECK-NEXT: br i1 [[TEST:%.*]], label [[IF_THEN:%.*]], label [[IF_END:%.*]]
96127
; CHECK: if.then:
97-
; CHECK-NEXT: call i32 @rand()
98-
; CHECK-NEXT: br label
128+
; CHECK-NEXT: [[CALL1:%.*]] = call i32 @rand()
129+
; CHECK-NEXT: br label [[RETURN:%.*]]
99130
; CHECK: if.end:
100-
; CHECK-NEXT: call i64
131+
; CHECK-NEXT: [[CALL2:%.*]] = call i64 [[P:%.*]]()
132+
; CHECK-NEXT: [[RETVAL_SROA_0_0_EXTRACT_TRUNC:%.*]] = trunc i64 [[CALL2]] to i32
133+
; CHECK-NEXT: [[RETVAL_SROA_3_0_EXTRACT_SHIFT:%.*]] = lshr i64 [[CALL2]], 32
134+
; CHECK-NEXT: [[RETVAL_SROA_3_0_EXTRACT_TRUNC:%.*]] = trunc i64 [[RETVAL_SROA_3_0_EXTRACT_SHIFT]] to i32
135+
; CHECK-NEXT: br label [[RETURN]]
101136
; CHECK: return:
102-
; CHECK-COUNT-2: phi i32
103-
; CHECK: ret i64
137+
; CHECK-NEXT: [[RETVAL_SROA_3_0:%.*]] = phi i32 [ 1, [[IF_THEN]] ], [ [[RETVAL_SROA_3_0_EXTRACT_TRUNC]], [[IF_END]] ]
138+
; CHECK-NEXT: [[RETVAL_SROA_0_0:%.*]] = phi i32 [ [[CALL1]], [[IF_THEN]] ], [ [[RETVAL_SROA_0_0_EXTRACT_TRUNC]], [[IF_END]] ]
139+
; CHECK-NEXT: [[RETVAL_SROA_3_0_INSERT_EXT:%.*]] = zext i32 [[RETVAL_SROA_3_0]] to i64
140+
; CHECK-NEXT: [[RETVAL_SROA_3_0_INSERT_SHIFT:%.*]] = shl i64 [[RETVAL_SROA_3_0_INSERT_EXT]], 32
141+
; CHECK-NEXT: [[RETVAL_SROA_3_0_INSERT_MASK:%.*]] = and i64 undef, 4294967295
142+
; CHECK-NEXT: [[RETVAL_SROA_3_0_INSERT_INSERT:%.*]] = or i64 [[RETVAL_SROA_3_0_INSERT_MASK]], [[RETVAL_SROA_3_0_INSERT_SHIFT]]
143+
; CHECK-NEXT: [[RETVAL_SROA_0_0_INSERT_EXT:%.*]] = zext i32 [[RETVAL_SROA_0_0]] to i64
144+
; CHECK-NEXT: [[RETVAL_SROA_0_0_INSERT_MASK:%.*]] = and i64 [[RETVAL_SROA_3_0_INSERT_INSERT]], -4294967296
145+
; CHECK-NEXT: [[RETVAL_SROA_0_0_INSERT_INSERT:%.*]] = or i64 [[RETVAL_SROA_0_0_INSERT_MASK]], [[RETVAL_SROA_0_0_INSERT_EXT]]
146+
; CHECK-NEXT: ret i64 [[RETVAL_SROA_0_0_INSERT_INSERT]]
104147
;
105148
entry:
106149
%retval = alloca %struct.RetValTwoInts, align 4

0 commit comments

Comments
 (0)