Skip to content

Commit 8e98537

Browse files
scottmcmshampoofactory
authored andcommitted
Redo the array-equality codegen tests for the different threshold
1 parent 9d45e0e commit 8e98537

File tree

1 file changed

+31
-10
lines changed

1 file changed

+31
-10
lines changed

src/test/codegen/array-equality.rs

+31-10
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,24 @@
11
// compile-flags: -O
22
// only-x86_64
3-
// ignore-test will need to be rewritten if pull accepted
43

54
#![crate_type = "lib"]
65

76
// CHECK-LABEL: @array_eq_value
87
#[no_mangle]
9-
pub fn array_eq_value(a: [u16; 6], b: [u16; 6]) -> bool {
8+
pub fn array_eq_value(a: [u16; 3], b: [u16; 3]) -> bool {
109
// CHECK-NEXT: start:
11-
// CHECK-NEXT: %2 = icmp eq i96 %0, %1
10+
// CHECK-NEXT: %2 = icmp eq i48 %0, %1
1211
// CHECK-NEXT: ret i1 %2
1312
a == b
1413
}
1514

1615
// CHECK-LABEL: @array_eq_ref
1716
#[no_mangle]
18-
pub fn array_eq_ref(a: &[u16; 6], b: &[u16; 6]) -> bool {
17+
pub fn array_eq_ref(a: &[u16; 3], b: &[u16; 3]) -> bool {
1918
// CHECK: start:
20-
// CHECK: load i96, i96* %{{.+}}, align 2
21-
// CHECK: load i96, i96* %{{.+}}, align 2
22-
// CHECK: icmp eq i96
19+
// CHECK: load i48, i48* %{{.+}}, align 2
20+
// CHECK: load i48, i48* %{{.+}}, align 2
21+
// CHECK: icmp eq i48
2322
// CHECK-NEXT: ret
2423
a == b
2524
}
@@ -48,11 +47,33 @@ pub fn array_eq_long(a: &[u16; 1234], b: &[u16; 1234]) -> bool {
4847
a == b
4948
}
5049

51-
// CHECK-LABEL: @array_eq_zero(i128 %0)
50+
// CHECK-LABEL: @array_eq_zero_short(i48
5251
#[no_mangle]
53-
pub fn array_eq_zero(x: [u16; 8]) -> bool {
52+
pub fn array_eq_zero_short(x: [u16; 3]) -> bool {
5453
// CHECK-NEXT: start:
55-
// CHECK-NEXT: %[[EQ:.+]] = icmp eq i128 %0, 0
54+
// CHECK-NEXT: %[[EQ:.+]] = icmp eq i48 %0, 0
55+
// CHECK-NEXT: ret i1 %[[EQ]]
56+
x == [0; 3]
57+
}
58+
59+
// CHECK-LABEL: @array_eq_zero_mid([8 x i16]*
60+
#[no_mangle]
61+
pub fn array_eq_zero_mid(x: [u16; 8]) -> bool {
62+
// CHECK-NEXT: start:
63+
// CHECK-NEXT: bitcast
64+
// CHECK-NEXT: %[[LOAD:.+]] = load i128,
65+
// CHECK-NEXT: %[[EQ:.+]] = icmp eq i128 %[[LOAD]], 0
5666
// CHECK-NEXT: ret i1 %[[EQ]]
5767
x == [0; 8]
5868
}
69+
70+
// CHECK-LABEL: @array_eq_zero_long([1234 x i16]*
71+
#[no_mangle]
72+
pub fn array_eq_zero_long(x: [u16; 1234]) -> bool {
73+
// CHECK-NEXT: start:
74+
// CHECK-NOT: alloca
75+
// CHECK: %[[CMP:.+]] = tail call i32 @{{bcmp|memcmp}}(
76+
// CHECK-NEXT: %[[EQ:.+]] = icmp eq i32 %[[CMP]], 0
77+
// CHECK-NEXT: ret i1 %[[EQ]]
78+
x == [0; 1234]
79+
}

0 commit comments

Comments
 (0)