@@ -11,25 +11,22 @@ define i256 @select_and(i256 %a0, i256 %a1, i256 %a2, i256 %a3, i256 %a4, i256 %
11
11
; CHECK-NEXT: SWAP3
12
12
; CHECK-NEXT: SWAP1
13
13
; CHECK-NEXT: SWAP2
14
+ ; CHECK-NEXT: SWAP5
15
+ ; CHECK-NEXT: SWAP4
16
+ ; CHECK-NEXT: SWAP5
14
17
; CHECK-NEXT: LT
15
18
; CHECK-NEXT: SWAP2
16
19
; CHECK-NEXT: LT
17
20
; CHECK-NEXT: AND
18
- ; CHECK-NEXT: ISZERO
19
- ; CHECK-NEXT: PUSH4 @.BB0_2
20
- ; CHECK-NEXT: JUMPI
21
- ; CHECK-NEXT: ; %bb.1:
22
- ; CHECK-NEXT: SWAP2
23
21
; CHECK-NEXT: SWAP1
24
- ; CHECK-NEXT: POP
25
- ; CHECK-NEXT: PUSH4 @.BB0_3
26
- ; CHECK-NEXT: JUMP
27
- ; CHECK-NEXT: .BB0_2:
28
- ; CHECK-NEXT: JUMPDEST
29
- ; CHECK-NEXT: POP
22
+ ; CHECK-NEXT: DUP2
23
+ ; CHECK-NEXT: PUSH1 0x1
24
+ ; CHECK-NEXT: SUB
25
+ ; CHECK-NEXT: MUL
26
+ ; CHECK-NEXT: SWAP2
27
+ ; CHECK-NEXT: MUL
28
+ ; CHECK-NEXT: ADD
30
29
; CHECK-NEXT: SWAP1
31
- ; CHECK-NEXT: .BB0_3:
32
- ; CHECK-NEXT: JUMPDEST
33
30
; CHECK-NEXT: JUMP
34
31
%cmp1 = icmp ult i256 %a0 , %a1
35
32
%cmp2 = icmp ult i256 %a2 , %a3
@@ -45,25 +42,22 @@ define i256 @select_or(i256 %a0, i256 %a1, i256 %a2, i256 %a3, i256 %a4, i256 %a
45
42
; CHECK-NEXT: SWAP3
46
43
; CHECK-NEXT: SWAP1
47
44
; CHECK-NEXT: SWAP2
45
+ ; CHECK-NEXT: SWAP5
46
+ ; CHECK-NEXT: SWAP4
47
+ ; CHECK-NEXT: SWAP5
48
48
; CHECK-NEXT: LT
49
49
; CHECK-NEXT: SWAP2
50
50
; CHECK-NEXT: LT
51
51
; CHECK-NEXT: OR
52
- ; CHECK-NEXT: ISZERO
53
- ; CHECK-NEXT: PUSH4 @.BB1_2
54
- ; CHECK-NEXT: JUMPI
55
- ; CHECK-NEXT: ; %bb.1:
56
- ; CHECK-NEXT: SWAP2
57
52
; CHECK-NEXT: SWAP1
58
- ; CHECK-NEXT: POP
59
- ; CHECK-NEXT: PUSH4 @.BB1_3
60
- ; CHECK-NEXT: JUMP
61
- ; CHECK-NEXT: .BB1_2:
62
- ; CHECK-NEXT: JUMPDEST
63
- ; CHECK-NEXT: POP
53
+ ; CHECK-NEXT: DUP2
54
+ ; CHECK-NEXT: PUSH1 0x1
55
+ ; CHECK-NEXT: SUB
56
+ ; CHECK-NEXT: MUL
57
+ ; CHECK-NEXT: SWAP2
58
+ ; CHECK-NEXT: MUL
59
+ ; CHECK-NEXT: ADD
64
60
; CHECK-NEXT: SWAP1
65
- ; CHECK-NEXT: .BB1_3:
66
- ; CHECK-NEXT: JUMPDEST
67
61
; CHECK-NEXT: JUMP
68
62
%cmp1 = icmp ult i256 %a0 , %a1
69
63
%cmp2 = icmp ult i256 %a2 , %a3
@@ -78,23 +72,20 @@ define i256 @select_select_to_and(i1 %cond1, i1 %cond2, i256 %a, i256 %b) {
78
72
; CHECK-NEXT: JUMPDEST
79
73
; CHECK-NEXT: PUSH1 0x1
80
74
; CHECK-NEXT: SWAP2
75
+ ; CHECK-NEXT: SWAP4
76
+ ; CHECK-NEXT: SWAP3
77
+ ; CHECK-NEXT: SWAP4
81
78
; CHECK-NEXT: AND
82
79
; CHECK-NEXT: AND
83
- ; CHECK-NEXT: ISZERO
84
- ; CHECK-NEXT: PUSH4 @.BB2_2
85
- ; CHECK-NEXT: JUMPI
86
- ; CHECK-NEXT: ; %bb.1:
87
- ; CHECK-NEXT: SWAP2
88
80
; CHECK-NEXT: SWAP1
89
- ; CHECK-NEXT: POP
90
- ; CHECK-NEXT: PUSH4 @.BB2_3
91
- ; CHECK-NEXT: JUMP
92
- ; CHECK-NEXT: .BB2_2:
93
- ; CHECK-NEXT: JUMPDEST
94
- ; CHECK-NEXT: POP
81
+ ; CHECK-NEXT: PUSH1 0x1
82
+ ; CHECK-NEXT: DUP3
83
+ ; CHECK-NEXT: XOR
84
+ ; CHECK-NEXT: MUL
85
+ ; CHECK-NEXT: SWAP2
86
+ ; CHECK-NEXT: MUL
87
+ ; CHECK-NEXT: ADD
95
88
; CHECK-NEXT: SWAP1
96
- ; CHECK-NEXT: .BB2_3:
97
- ; CHECK-NEXT: JUMPDEST
98
89
; CHECK-NEXT: JUMP
99
90
%select1 = select i1 %cond1 , i256 %a , i256 %b
100
91
%select2 = select i1 %cond2 , i256 %select1 , i256 %b
@@ -107,23 +98,20 @@ define i256 @select_select_to_or(i1 %cond1, i1 %cond2, i256 %a, i256 %b) {
107
98
; CHECK-NEXT: JUMPDEST
108
99
; CHECK-NEXT: PUSH1 0x1
109
100
; CHECK-NEXT: SWAP2
101
+ ; CHECK-NEXT: SWAP4
102
+ ; CHECK-NEXT: SWAP3
103
+ ; CHECK-NEXT: SWAP4
110
104
; CHECK-NEXT: OR
111
105
; CHECK-NEXT: AND
112
- ; CHECK-NEXT: ISZERO
113
- ; CHECK-NEXT: PUSH4 @.BB3_2
114
- ; CHECK-NEXT: JUMPI
115
- ; CHECK-NEXT: ; %bb.1:
116
- ; CHECK-NEXT: SWAP2
117
106
; CHECK-NEXT: SWAP1
118
- ; CHECK-NEXT: POP
119
- ; CHECK-NEXT: PUSH4 @.BB3_3
120
- ; CHECK-NEXT: JUMP
121
- ; CHECK-NEXT: .BB3_2:
122
- ; CHECK-NEXT: JUMPDEST
123
- ; CHECK-NEXT: POP
107
+ ; CHECK-NEXT: PUSH1 0x1
108
+ ; CHECK-NEXT: DUP3
109
+ ; CHECK-NEXT: XOR
110
+ ; CHECK-NEXT: MUL
111
+ ; CHECK-NEXT: SWAP2
112
+ ; CHECK-NEXT: MUL
113
+ ; CHECK-NEXT: ADD
124
114
; CHECK-NEXT: SWAP1
125
- ; CHECK-NEXT: .BB3_3:
126
- ; CHECK-NEXT: JUMPDEST
127
115
; CHECK-NEXT: JUMP
128
116
%select1 = select i1 %cond1 , i256 %a , i256 %b
129
117
%select2 = select i1 %cond2 , i256 %a , i256 %select1
0 commit comments