Skip to content

Commit e4dbcae

Browse files
Removed compile time known constants from the test
1 parent 1fd14af commit e4dbcae

File tree

1 file changed

+28
-42
lines changed

1 file changed

+28
-42
lines changed
Lines changed: 28 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,22 @@
11
; RUN: llc -O3 -mtriple=aarch64-linux-gnu %s -o - | FileCheck %s --check-prefix=CHECK-LE
22
; RUN: llc -O3 -mtriple=aarch64_be-linux-gnu %s -o - | FileCheck %s --check-prefix=CHECK-BE
33

4-
@haystack4 = internal unnamed_addr constant [4 x i32] [i32 0, i32 1, i32 2, i32 3], align 4
5-
@haystack16 = internal unnamed_addr constant [16 x i8] [i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15], align 16
6-
7-
8-
define i8 @test4() {
9-
%matches = alloca <4 x i1>, align 1
10-
%index_ptr = alloca i64, align 8
11-
store i64 0, ptr %index_ptr, align 8
12-
%index_val = load i64, ptr %index_ptr, align 8
13-
%haystack = getelementptr inbounds i32, ptr getelementptr inbounds (i8, ptr @haystack4, i64 0), i64 %index_val
14-
%h_vec = load <4 x i32>, ptr %haystack, align 4
15-
%cmp_vec = icmp eq <4 x i32> %h_vec, <i32 2, i32 2, i32 2, i32 2>
16-
store volatile <4 x i1> %cmp_vec, ptr %matches, align 1
17-
%cmp_load = load volatile <4 x i1>, ptr %matches, align 1
18-
%extr = extractelement <4 x i1> %cmp_load, i64 2
19-
%ret = zext i1 %extr to i8
20-
ret i8 %ret
4+
define i16 @convert_to_bitmask16(<16 x i8> %vec) {
5+
%cmp_result = icmp ne <16 x i8> %vec, zeroinitializer
6+
%bitmask = bitcast <16 x i1> %cmp_result to i16
7+
ret i16 %bitmask
218
}
229

23-
define i8 @test16() {
24-
%matches = alloca <16 x i1>, align 2
25-
%index_ptr = alloca i64, align 8
26-
store i64 0, ptr %index_ptr, align 8
27-
%index_val = load i64, ptr %index_ptr, align 8
28-
%haystack = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @haystack16, i64 0), i64 %index_val
29-
%h_vec = load <16 x i8>, ptr %haystack, align 16
30-
%cmp_vec = icmp eq <16 x i8> %h_vec, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2>
31-
store volatile <16 x i1> %cmp_vec, ptr %matches, align 2
32-
%cmp_load = load volatile <16 x i1>, ptr %matches, align 2
33-
%extr = extractelement <16 x i1> %cmp_load, i64 7
34-
%ret = zext i1 %extr to i8
35-
ret i8 %ret
10+
define i16 @convert_to_bitmask8(<8 x i16> %vec) {
11+
%cmp_result = icmp ne <8 x i16> %vec, zeroinitializer
12+
%bitmask = bitcast <8 x i1> %cmp_result to i8
13+
%extended_bitmask = zext i8 %bitmask to i16
14+
ret i16 %extended_bitmask
3615
}
3716

3817
; Little endian
3918

4019
; CHECK-LE-LABEL: .LCPI0_0:
41-
; CHECK-LE-NEXT: .word 1
42-
; CHECK-LE-NEXT: .word 2
43-
; CHECK-LE-NEXT: .word 4
44-
; CHECK-LE-NEXT: .word 8
45-
46-
; CHECK-LE-LABEL: .LCPI1_0:
4720
; CHECK-LE-NEXT: .byte 1
4821
; CHECK-LE-NEXT: .byte 2
4922
; CHECK-LE-NEXT: .byte 4
@@ -61,16 +34,19 @@ define i8 @test16() {
6134
; CHECK-LE-NEXT: .byte 64
6235
; CHECK-LE-NEXT: .byte 128
6336

37+
; CHECK-LE-LABEL: .LCPI1_0:
38+
; CHECK-LE-NEXT: .hword 1
39+
; CHECK-LE-NEXT: .hword 2
40+
; CHECK-LE-NEXT: .hword 4
41+
; CHECK-LE-NEXT: .hword 8
42+
; CHECK-LE-NEXT: .hword 16
43+
; CHECK-LE-NEXT: .hword 32
44+
; CHECK-LE-NEXT: .hword 64
45+
; CHECK-LE-NEXT: .hword 128
6446

6547
; Big endian
6648

6749
; CHECK-BE-LABEL: .LCPI0_0:
68-
; CHECK-BE-NEXT: .word 8
69-
; CHECK-BE-NEXT: .word 4
70-
; CHECK-BE-NEXT: .word 2
71-
; CHECK-BE-NEXT: .word 1
72-
73-
; CHECK-BE-LABEL: .LCPI1_0:
7450
; CHECK-BE-NEXT: .byte 128
7551
; CHECK-BE-NEXT: .byte 64
7652
; CHECK-BE-NEXT: .byte 32
@@ -87,3 +63,13 @@ define i8 @test16() {
8763
; CHECK-BE-NEXT: .byte 4
8864
; CHECK-BE-NEXT: .byte 2
8965
; CHECK-BE-NEXT: .byte 1
66+
67+
; CHECK-BE-LABEL: .LCPI1_0:
68+
; CHECK-BE-NEXT: .hword 128
69+
; CHECK-BE-NEXT: .hword 64
70+
; CHECK-BE-NEXT: .hword 32
71+
; CHECK-BE-NEXT: .hword 16
72+
; CHECK-BE-NEXT: .hword 8
73+
; CHECK-BE-NEXT: .hword 4
74+
; CHECK-BE-NEXT: .hword 2
75+
; CHECK-BE-NEXT: .hword 1

0 commit comments

Comments
 (0)