6
6
;
7
7
;============================ end_copyright_notice =============================
8
8
;
9
- ; RUN: %opt %use_old_pass_manager% -GenXModule -GenXLiveRangesWrapper -GenXDepressurizerWrapper -march=genx64 -mtriple=spir64-unknown-unknown -mcpu=XeHPG -S < %s | FileCheck %s --check-prefixes=CHECK,CHECK-XeHPG
10
- ; RUN: %opt %use_old_pass_manager% -GenXModule -GenXLiveRangesWrapper -GenXDepressurizerWrapper -march=genx64 -mtriple=spir64-unknown-unknown -mcpu=XeHPC - S < %s | FileCheck %s --check-prefixes=CHECK,CHECK-XeHPC
11
- ; RUN: %opt %use_old_pass_manager% -GenXModule -GenXLiveRangesWrapper -GenXDepressurizerWrapper -march=genx64 -mtriple=spir64-unknown-unknown -mcpu=Xe2 -vc-grf-size=64 -S < %s | FileCheck %s --check-prefixes=CHECK,CHECK-Xe2-64
12
- ; RUN: %opt %use_old_pass_manager% -GenXModule -GenXLiveRangesWrapper -GenXDepressurizerWrapper -march=genx64 -mtriple=spir64-unknown-unknown -mcpu=Xe2 -vc-grf-size=128 -S < %s | FileCheck %s --check-prefixes=CHECK,CHECK-Xe2-128
13
- ; RUN: %opt %use_old_pass_manager% -GenXModule -GenXLiveRangesWrapper -GenXDepressurizerWrapper -march=genx64 -mtriple=spir64-unknown-unknown -mcpu=Xe2 -vc-grf-size=256 -S < %s | FileCheck %s --check-prefixes=CHECK,CHECK-Xe2-256
9
+ ; RUN: %opt %use_old_pass_manager% -GenXModule -GenXLiveRangesWrapper -GenXDepressurizerWrapper -march=genx64 -mtriple=spir64-unknown-unknown -mcpu=XeHPG -vc-grf-size=32 - S < %s | FileCheck %s --check-prefixes=CHECK,CHECK-XeHPG-32
10
+ ; RUN: %opt %use_old_pass_manager% -GenXModule -GenXLiveRangesWrapper -GenXDepressurizerWrapper -march=genx64 -mtriple=spir64-unknown-unknown -mcpu=XeHPG -vc-grf-size=64 - S < %s | FileCheck %s --check-prefixes=CHECK,CHECK-XeHPG-64
11
+ ; RUN: %opt %use_old_pass_manager% -GenXModule -GenXLiveRangesWrapper -GenXDepressurizerWrapper -march=genx64 -mtriple=spir64-unknown-unknown -mcpu=XeHPG -vc-grf-size=128 -S < %s | FileCheck %s --check-prefixes=CHECK,CHECK-XeHPG-128
12
+ ; RUN: %opt %use_old_pass_manager% -GenXModule -GenXLiveRangesWrapper -GenXDepressurizerWrapper -march=genx64 -mtriple=spir64-unknown-unknown -mcpu=XeHPG -vc-grf-size=256 -S < %s | FileCheck %s --check-prefixes=CHECK,CHECK-XeHPG-256
13
+ ; RUN: %opt %use_old_pass_manager% -GenXModule -GenXLiveRangesWrapper -GenXDepressurizerWrapper -march=genx64 -mtriple=spir64-unknown-unknown -mcpu=XeHPC -vc-auto-large-grf -S < %s | FileCheck %s --check-prefixes=CHECK,CHECK-XeHPC
14
14
15
15
; CHECK-LABEL: @test1
16
16
define dllexport void @test1 (<16 x half > %arg ) #0 {
@@ -23,11 +23,11 @@ loop:
23
23
%i = phi i32 [ 0 , %entry ], [ %i.next , %loop ]
24
24
%res = phi <16 x float > [ zeroinitializer , %entry ], [ %res.next , %loop ]
25
25
%i.next = add i32 %i , 1
26
- ; CHECK-XeHPG-NOT: fpext
26
+ ; CHECK-XeHPG-32: fpext
27
+ ; CHECK-XeHPG-64-NOT: fpext
28
+ ; CHECK-XeHPG-128-NOT: fpext
29
+ ; CHECK-XeHPG-256-NOT: fpext
27
30
; CHECK-XeHPC-NOT: fpext
28
- ; CHECK-Xe2-64-NOT: fpext
29
- ; CHECK-Xe2-128-NOT: fpext
30
- ; CHECK-Xe2-256-NOT: fpext
31
31
%res.next = fadd <16 x float > %res , %fp
32
32
%cmp = icmp ult i32 %i.next , 100
33
33
br i1 %cmp , label %loop , label %end
37
37
}
38
38
39
39
; CHECK-LABEL: @test2
40
- define dllexport <1024 x i32 > @test2 (<1024 x i32 > %pressure , <16 x half > %arg ) #0 {
40
+ define dllexport <512 x i8 > @test2 (<512 x i8 > %pressure , <16 x half > %arg ) #0 {
41
41
entry:
42
42
%fp = fpext <16 x half > %arg to <16 x float >
43
43
; CHECK: br label %loop
@@ -47,21 +47,21 @@ loop:
47
47
%i = phi i32 [ 0 , %entry ], [ %i.next , %loop ]
48
48
%res = phi <16 x float > [ zeroinitializer , %entry ], [ %res.next , %loop ]
49
49
%i.next = add i32 %i , 1
50
- ; CHECK-XeHPG: fpext
50
+ ; CHECK-XeHPG-32: fpext
51
+ ; CHECK-XeHPG-64: fpext
52
+ ; CHECK-XeHPG-128-NOT: fpext
53
+ ; CHECK-XeHPG-256-NOT: fpext
51
54
; CHECK-XeHPC-NOT: fpext
52
- ; CHECK-Xe2-64: fpext
53
- ; CHECK-Xe2-128-NOT: fpext
54
- ; CHECK-Xe2-256-NOT: fpext
55
55
%res.next = fadd <16 x float > %res , %fp
56
56
%cmp = icmp ult i32 %i.next , 100
57
57
br i1 %cmp , label %loop , label %end
58
58
59
59
end:
60
- ret <1024 x i32 > %pressure
60
+ ret <512 x i8 > %pressure
61
61
}
62
62
63
63
; CHECK-LABEL: @test3
64
- define dllexport <2048 x i32 > @test3 (<2048 x i32 > %pressure , <16 x half > %arg ) #0 {
64
+ define dllexport <2560 x i8 > @test3 (<2560 x i8 > %pressure , <16 x half > %arg ) #0 {
65
65
entry:
66
66
%fp = fpext <16 x half > %arg to <16 x float >
67
67
; CHECK: br label %loop
@@ -71,21 +71,21 @@ loop:
71
71
%i = phi i32 [ 0 , %entry ], [ %i.next , %loop ]
72
72
%res = phi <16 x float > [ zeroinitializer , %entry ], [ %res.next , %loop ]
73
73
%i.next = add i32 %i , 1
74
- ; CHECK-XeHPG: fpext
75
- ; CHECK-XeHPC : fpext
76
- ; CHECK-Xe2-64 : fpext
77
- ; CHECK-Xe2-128 : fpext
78
- ; CHECK-Xe2-256 -NOT: fpext
74
+ ; CHECK-XeHPG-32 : fpext
75
+ ; CHECK-XeHPG-64 : fpext
76
+ ; CHECK-XeHPG-128 : fpext
77
+ ; CHECK-XeHPG-256-NOT : fpext
78
+ ; CHECK-XeHPC -NOT: fpext
79
79
%res.next = fadd <16 x float > %res , %fp
80
80
%cmp = icmp ult i32 %i.next , 100
81
81
br i1 %cmp , label %loop , label %end
82
82
83
83
end:
84
- ret <2048 x i32 > %pressure
84
+ ret <2560 x i8 > %pressure
85
85
}
86
86
87
87
; CHECK-LABEL: @test4
88
- define dllexport <4096 x i32 > @test4 (<4096 x i32 > %pressure , <16 x half > %arg ) #0 {
88
+ define dllexport <5120 x i8 > @test4 (<5120 x i8 > %pressure , <16 x half > %arg ) #0 {
89
89
entry:
90
90
%fp = fpext <16 x half > %arg to <16 x float >
91
91
; CHECK: br label %loop
@@ -95,23 +95,47 @@ loop:
95
95
%i = phi i32 [ 0 , %entry ], [ %i.next , %loop ]
96
96
%res = phi <16 x float > [ zeroinitializer , %entry ], [ %res.next , %loop ]
97
97
%i.next = add i32 %i , 1
98
- ; CHECK-XeHPG: fpext
98
+ ; CHECK-XeHPG-32: fpext
99
+ ; CHECK-XeHPG-64: fpext
100
+ ; CHECK-XeHPG-128: fpext
101
+ ; CHECK-XeHPG-256-NOT: fpext
99
102
; CHECK-XeHPC: fpext
100
- ; CHECK-Xe2-64: fpext
101
- ; CHECK-Xe2-128: fpext
102
- ; CHECK-Xe2-256: fpext
103
103
%res.next = fadd <16 x float > %res , %fp
104
104
%cmp = icmp ult i32 %i.next , 100
105
105
br i1 %cmp , label %loop , label %end
106
106
107
107
end:
108
- ret <4096 x i32 > %pressure
108
+ ret <5120 x i8 > %pressure
109
+ }
110
+
111
+ ; CHECK-LABEL: @test5
112
+ define dllexport <6656 x i8 > @test5 (<6656 x i8 > %pressure , <16 x half > %arg ) #0 {
113
+ entry:
114
+ %fp = fpext <16 x half > %arg to <16 x float >
115
+ ; CHECK: br label %loop
116
+ br label %loop
117
+
118
+ loop:
119
+ %i = phi i32 [ 0 , %entry ], [ %i.next , %loop ]
120
+ %res = phi <16 x float > [ zeroinitializer , %entry ], [ %res.next , %loop ]
121
+ %i.next = add i32 %i , 1
122
+ ; CHECK-XeHPG-32: fpext
123
+ ; CHECK-XeHPG-64: fpext
124
+ ; CHECK-XeHPG-128: fpext
125
+ ; CHECK-XeHPG-256: fpext
126
+ ; CHECK-XeHPC: fpext
127
+ %res.next = fadd <16 x float > %res , %fp
128
+ %cmp = icmp ult i32 %i.next , 100
129
+ br i1 %cmp , label %loop , label %end
130
+
131
+ end:
132
+ ret <6656 x i8 > %pressure
109
133
}
110
134
111
135
; COM: Register pressure is beyond threshold for all platforms
112
136
; COM: Check that instructions smaller than a one register are not moved into the loop
113
- ; CHECK-LABEL: @test5
114
- define dllexport <4096 x i32 > @test5 (< 4096 x i32 > %pressure , <4 x half > %arg.4 , <8 x half > %arg.8 ) #0 {
137
+ ; CHECK-LABEL: @test6
138
+ define dllexport <6656 x i8 > @test6 (< 6656 x i8 > %pressure , <4 x half > %arg.4 , <8 x half > %arg.8 ) #0 {
115
139
entry:
116
140
%fp.4 = fpext <4 x half > %arg.4 to <4 x float >
117
141
%fp.8 = fpext <8 x half > %arg.8 to <8 x float >
@@ -122,20 +146,19 @@ loop:
122
146
%i = phi i32 [ 0 , %entry ], [ %i.next , %loop ]
123
147
%res.4 = phi <4 x float > [ zeroinitializer , %entry ], [ %res.next.4 , %loop ]
124
148
%res.8 = phi <8 x float > [ zeroinitializer , %entry ], [ %res.next.8 , %loop ]
125
- ; CHECK-XeHPG-NOT: fpext <4 x half>
126
- ; CHECK-XeHPG: fpext <8 x half>
149
+ ; CHECK-XeHPG-32: fpext
150
+ ; CHECK-XeHPG-64: fpext
151
+ ; CHECK-XeHPG-128: fpext
152
+ ; CHECK-XeHPG-256: fpext
127
153
; CHECK-XeHPC-NOT: fpext
128
- ; CHECK-Xe2-64-NOT: fpext
129
- ; CHECK-Xe2-128-NOT: fpext
130
- ; CHECK-Xe2-256-NOT: fpext
131
154
%res.next.4 = fadd <4 x float > %res.4 , %fp.4
132
155
%res.next.8 = fadd <8 x float > %res.8 , %fp.8
133
156
%i.next = add i32 %i , 1
134
157
%cmp = icmp ult i32 %i.next , 100
135
158
br i1 %cmp , label %loop , label %end
136
159
137
160
end:
138
- ret <4096 x i32 > %pressure
161
+ ret <6656 x i8 > %pressure
139
162
}
140
163
141
164
attributes #0 = { "CMGenxMain" }
0 commit comments