6
6
define void @frem_v2double () {
7
7
; CHECK-LABEL: define void @frem_v2double() {
8
8
; CHECK-NEXT: entry:
9
- ; CHECK-NEXT: [[A0:%.*]] = load double, ptr @a, align 8
10
- ; CHECK-NEXT: [[A1:%.*]] = load double, ptr getelementptr inbounds (double, ptr @a, i64 1), align 8
11
- ; CHECK-NEXT: [[B0:%.*]] = load double, ptr @a, align 8
12
- ; CHECK-NEXT: [[B1:%.*]] = load double, ptr getelementptr inbounds (double, ptr @a, i64 1), align 8
13
- ; CHECK-NEXT: [[R0:%.*]] = frem double [[A0]], [[B0]]
14
- ; CHECK-NEXT: [[R1:%.*]] = frem double [[A1]], [[B1]]
15
- ; CHECK-NEXT: store double [[R0]], ptr @a, align 8
16
- ; CHECK-NEXT: store double [[R1]], ptr getelementptr inbounds (double, ptr @a, i64 1), align 8
9
+ ; CHECK-NEXT: [[TMP0:%.*]] = load <2 x double>, ptr @a, align 8
10
+ ; CHECK-NEXT: [[TMP1:%.*]] = load <2 x double>, ptr @a, align 8
11
+ ; CHECK-NEXT: [[TMP2:%.*]] = frem <2 x double> [[TMP0]], [[TMP1]]
12
+ ; CHECK-NEXT: store <2 x double> [[TMP2]], ptr @a, align 8
17
13
; CHECK-NEXT: ret void
18
14
;
19
15
entry:
@@ -31,22 +27,10 @@ entry:
31
27
define void @frem_v4float () {
32
28
; CHECK-LABEL: define void @frem_v4float() {
33
29
; CHECK-NEXT: entry:
34
- ; CHECK-NEXT: [[A0:%.*]] = load float, ptr @a, align 8
35
- ; CHECK-NEXT: [[A1:%.*]] = load float, ptr getelementptr inbounds (float, ptr @a, i64 1), align 8
36
- ; CHECK-NEXT: [[A2:%.*]] = load float, ptr getelementptr inbounds (float, ptr @a, i64 2), align 8
37
- ; CHECK-NEXT: [[A3:%.*]] = load float, ptr getelementptr inbounds (float, ptr @a, i64 3), align 8
38
- ; CHECK-NEXT: [[B0:%.*]] = load float, ptr @a, align 8
39
- ; CHECK-NEXT: [[B1:%.*]] = load float, ptr getelementptr inbounds (float, ptr @a, i64 1), align 8
40
- ; CHECK-NEXT: [[B2:%.*]] = load float, ptr getelementptr inbounds (float, ptr @a, i64 2), align 8
41
- ; CHECK-NEXT: [[B3:%.*]] = load float, ptr getelementptr inbounds (float, ptr @a, i64 3), align 8
42
- ; CHECK-NEXT: [[R0:%.*]] = frem float [[A0]], [[B0]]
43
- ; CHECK-NEXT: [[R1:%.*]] = frem float [[A1]], [[B1]]
44
- ; CHECK-NEXT: [[R2:%.*]] = frem float [[A2]], [[B2]]
45
- ; CHECK-NEXT: [[R3:%.*]] = frem float [[A3]], [[B3]]
46
- ; CHECK-NEXT: store float [[R0]], ptr @a, align 8
47
- ; CHECK-NEXT: store float [[R1]], ptr getelementptr inbounds (float, ptr @a, i64 1), align 8
48
- ; CHECK-NEXT: store float [[R2]], ptr getelementptr inbounds (float, ptr @a, i64 2), align 8
49
- ; CHECK-NEXT: store float [[R3]], ptr getelementptr inbounds (float, ptr @a, i64 3), align 8
30
+ ; CHECK-NEXT: [[TMP0:%.*]] = load <4 x float>, ptr @a, align 8
31
+ ; CHECK-NEXT: [[TMP1:%.*]] = load <4 x float>, ptr @a, align 8
32
+ ; CHECK-NEXT: [[TMP2:%.*]] = frem <4 x float> [[TMP0]], [[TMP1]]
33
+ ; CHECK-NEXT: store <4 x float> [[TMP2]], ptr @a, align 8
50
34
; CHECK-NEXT: ret void
51
35
;
52
36
entry:
0 commit comments