@@ -27,119 +27,91 @@ define i32 @f(ptr %b) {
27
27
; CHECK-NEXT: [[TOBOOL7:%.*]] = icmp eq i32 [[AND6]], 0
28
28
; CHECK-NEXT: [[OR9:%.*]] = or i32 [[TMP2]], 536870912
29
29
; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[TOBOOL7]], i32 [[TMP2]], i32 [[OR9]]
30
- ; CHECK-NEXT: [[TMP6:%.*]] = xor i1 [[TMP5]], true
31
30
; CHECK-NEXT: [[TMP7:%.*]] = xor i1 [[TOBOOL7]], true
32
- ; CHECK-NEXT: [[TMP8:%.*]] = xor i1 [[TMP6]], true
33
- ; CHECK-NEXT: [[TMP9:%.*]] = or i1 [[TMP8]], [[TMP7]]
31
+ ; CHECK-NEXT: [[TMP8:%.*]] = or i1 [[TMP5]], [[TMP7]]
34
32
; CHECK-NEXT: [[AND11:%.*]] = and i32 [[SPEC_SELECT]], 8
35
33
; CHECK-NEXT: [[TOBOOL12:%.*]] = icmp eq i32 [[AND11]], 0
36
34
; CHECK-NEXT: [[OR14:%.*]] = or i32 [[SPEC_SELECT]], 268435456
37
35
; CHECK-NEXT: [[SPEC_SELECT1:%.*]] = select i1 [[TOBOOL12]], i32 [[SPEC_SELECT]], i32 [[OR14]]
38
- ; CHECK-NEXT: [[TMP10:%.*]] = xor i1 [[TMP9]], true
39
36
; CHECK-NEXT: [[TMP11:%.*]] = xor i1 [[TOBOOL12]], true
40
- ; CHECK-NEXT: [[TMP12:%.*]] = xor i1 [[TMP10]], true
41
- ; CHECK-NEXT: [[TMP13:%.*]] = or i1 [[TMP12]], [[TMP11]]
37
+ ; CHECK-NEXT: [[TMP9:%.*]] = or i1 [[TMP8]], [[TMP11]]
42
38
; CHECK-NEXT: [[AND16:%.*]] = and i32 [[SPEC_SELECT1]], 16
43
39
; CHECK-NEXT: [[TOBOOL17:%.*]] = icmp eq i32 [[AND16]], 0
44
40
; CHECK-NEXT: [[OR19:%.*]] = or i32 [[SPEC_SELECT1]], 134217728
45
41
; CHECK-NEXT: [[SPEC_SELECT2:%.*]] = select i1 [[TOBOOL17]], i32 [[SPEC_SELECT1]], i32 [[OR19]]
46
- ; CHECK-NEXT: [[TMP14:%.*]] = xor i1 [[TMP13]], true
47
42
; CHECK-NEXT: [[TMP15:%.*]] = xor i1 [[TOBOOL17]], true
48
- ; CHECK-NEXT: [[TMP16:%.*]] = xor i1 [[TMP14]], true
49
- ; CHECK-NEXT: [[TMP17:%.*]] = or i1 [[TMP16]], [[TMP15]]
43
+ ; CHECK-NEXT: [[TMP12:%.*]] = or i1 [[TMP9]], [[TMP15]]
50
44
; CHECK-NEXT: [[AND21:%.*]] = and i32 [[SPEC_SELECT2]], 32
51
45
; CHECK-NEXT: [[TOBOOL22:%.*]] = icmp eq i32 [[AND21]], 0
52
46
; CHECK-NEXT: [[OR24:%.*]] = or i32 [[SPEC_SELECT2]], 67108864
53
47
; CHECK-NEXT: [[SPEC_SELECT3:%.*]] = select i1 [[TOBOOL22]], i32 [[SPEC_SELECT2]], i32 [[OR24]]
54
- ; CHECK-NEXT: [[TMP18:%.*]] = xor i1 [[TMP17]], true
55
48
; CHECK-NEXT: [[TMP19:%.*]] = xor i1 [[TOBOOL22]], true
56
- ; CHECK-NEXT: [[TMP20:%.*]] = xor i1 [[TMP18]], true
57
- ; CHECK-NEXT: [[TMP21:%.*]] = or i1 [[TMP20]], [[TMP19]]
49
+ ; CHECK-NEXT: [[TMP13:%.*]] = or i1 [[TMP12]], [[TMP19]]
58
50
; CHECK-NEXT: [[AND26:%.*]] = and i32 [[SPEC_SELECT3]], 64
59
51
; CHECK-NEXT: [[TOBOOL27:%.*]] = icmp eq i32 [[AND26]], 0
60
52
; CHECK-NEXT: [[OR29:%.*]] = or i32 [[SPEC_SELECT3]], 33554432
61
53
; CHECK-NEXT: [[SPEC_SELECT4:%.*]] = select i1 [[TOBOOL27]], i32 [[SPEC_SELECT3]], i32 [[OR29]]
62
- ; CHECK-NEXT: [[TMP22:%.*]] = xor i1 [[TMP21]], true
63
54
; CHECK-NEXT: [[TMP23:%.*]] = xor i1 [[TOBOOL27]], true
64
- ; CHECK-NEXT: [[TMP24:%.*]] = xor i1 [[TMP22]], true
65
- ; CHECK-NEXT: [[TMP25:%.*]] = or i1 [[TMP24]], [[TMP23]]
55
+ ; CHECK-NEXT: [[TMP16:%.*]] = or i1 [[TMP13]], [[TMP23]]
66
56
; CHECK-NEXT: [[AND31:%.*]] = and i32 [[SPEC_SELECT4]], 256
67
57
; CHECK-NEXT: [[TOBOOL32:%.*]] = icmp eq i32 [[AND31]], 0
68
58
; CHECK-NEXT: [[OR34:%.*]] = or i32 [[SPEC_SELECT4]], 8388608
69
59
; CHECK-NEXT: [[SPEC_SELECT5:%.*]] = select i1 [[TOBOOL32]], i32 [[SPEC_SELECT4]], i32 [[OR34]]
70
- ; CHECK-NEXT: [[TMP26:%.*]] = xor i1 [[TMP25]], true
71
60
; CHECK-NEXT: [[TMP27:%.*]] = xor i1 [[TOBOOL32]], true
72
- ; CHECK-NEXT: [[TMP28:%.*]] = xor i1 [[TMP26]], true
73
- ; CHECK-NEXT: [[TMP29:%.*]] = or i1 [[TMP28]], [[TMP27]]
61
+ ; CHECK-NEXT: [[TMP17:%.*]] = or i1 [[TMP16]], [[TMP27]]
74
62
; CHECK-NEXT: [[AND36:%.*]] = and i32 [[SPEC_SELECT5]], 512
75
63
; CHECK-NEXT: [[TOBOOL37:%.*]] = icmp eq i32 [[AND36]], 0
76
64
; CHECK-NEXT: [[OR39:%.*]] = or i32 [[SPEC_SELECT5]], 4194304
77
65
; CHECK-NEXT: [[SPEC_SELECT6:%.*]] = select i1 [[TOBOOL37]], i32 [[SPEC_SELECT5]], i32 [[OR39]]
78
- ; CHECK-NEXT: [[TMP30:%.*]] = xor i1 [[TMP29]], true
79
66
; CHECK-NEXT: [[TMP31:%.*]] = xor i1 [[TOBOOL37]], true
80
- ; CHECK-NEXT: [[TMP32:%.*]] = xor i1 [[TMP30]], true
81
- ; CHECK-NEXT: [[TMP33:%.*]] = or i1 [[TMP32]], [[TMP31]]
67
+ ; CHECK-NEXT: [[TMP20:%.*]] = or i1 [[TMP17]], [[TMP31]]
82
68
; CHECK-NEXT: [[AND41:%.*]] = and i32 [[SPEC_SELECT6]], 1024
83
69
; CHECK-NEXT: [[TOBOOL42:%.*]] = icmp eq i32 [[AND41]], 0
84
70
; CHECK-NEXT: [[OR44:%.*]] = or i32 [[SPEC_SELECT6]], 2097152
85
71
; CHECK-NEXT: [[SPEC_SELECT7:%.*]] = select i1 [[TOBOOL42]], i32 [[SPEC_SELECT6]], i32 [[OR44]]
86
- ; CHECK-NEXT: [[TMP34:%.*]] = xor i1 [[TMP33]], true
87
72
; CHECK-NEXT: [[TMP35:%.*]] = xor i1 [[TOBOOL42]], true
88
- ; CHECK-NEXT: [[TMP36:%.*]] = xor i1 [[TMP34]], true
89
- ; CHECK-NEXT: [[TMP37:%.*]] = or i1 [[TMP36]], [[TMP35]]
73
+ ; CHECK-NEXT: [[TMP21:%.*]] = or i1 [[TMP20]], [[TMP35]]
90
74
; CHECK-NEXT: [[AND46:%.*]] = and i32 [[SPEC_SELECT7]], 2048
91
75
; CHECK-NEXT: [[TOBOOL47:%.*]] = icmp eq i32 [[AND46]], 0
92
76
; CHECK-NEXT: [[OR49:%.*]] = or i32 [[SPEC_SELECT7]], 1048576
93
77
; CHECK-NEXT: [[SPEC_SELECT8:%.*]] = select i1 [[TOBOOL47]], i32 [[SPEC_SELECT7]], i32 [[OR49]]
94
- ; CHECK-NEXT: [[TMP38:%.*]] = xor i1 [[TMP37]], true
95
78
; CHECK-NEXT: [[TMP39:%.*]] = xor i1 [[TOBOOL47]], true
96
- ; CHECK-NEXT: [[TMP40:%.*]] = xor i1 [[TMP38]], true
97
- ; CHECK-NEXT: [[TMP41:%.*]] = or i1 [[TMP40]], [[TMP39]]
79
+ ; CHECK-NEXT: [[TMP24:%.*]] = or i1 [[TMP21]], [[TMP39]]
98
80
; CHECK-NEXT: [[AND51:%.*]] = and i32 [[SPEC_SELECT8]], 4096
99
81
; CHECK-NEXT: [[TOBOOL52:%.*]] = icmp eq i32 [[AND51]], 0
100
82
; CHECK-NEXT: [[OR54:%.*]] = or i32 [[SPEC_SELECT8]], 524288
101
83
; CHECK-NEXT: [[SPEC_SELECT9:%.*]] = select i1 [[TOBOOL52]], i32 [[SPEC_SELECT8]], i32 [[OR54]]
102
- ; CHECK-NEXT: [[TMP42:%.*]] = xor i1 [[TMP41]], true
103
84
; CHECK-NEXT: [[TMP43:%.*]] = xor i1 [[TOBOOL52]], true
104
- ; CHECK-NEXT: [[TMP44:%.*]] = xor i1 [[TMP42]], true
105
- ; CHECK-NEXT: [[TMP45:%.*]] = or i1 [[TMP44]], [[TMP43]]
85
+ ; CHECK-NEXT: [[TMP25:%.*]] = or i1 [[TMP24]], [[TMP43]]
106
86
; CHECK-NEXT: [[AND56:%.*]] = and i32 [[SPEC_SELECT9]], 8192
107
87
; CHECK-NEXT: [[TOBOOL57:%.*]] = icmp eq i32 [[AND56]], 0
108
88
; CHECK-NEXT: [[OR59:%.*]] = or i32 [[SPEC_SELECT9]], 262144
109
89
; CHECK-NEXT: [[SPEC_SELECT10:%.*]] = select i1 [[TOBOOL57]], i32 [[SPEC_SELECT9]], i32 [[OR59]]
110
- ; CHECK-NEXT: [[TMP46:%.*]] = xor i1 [[TMP45]], true
111
90
; CHECK-NEXT: [[TMP47:%.*]] = xor i1 [[TOBOOL57]], true
112
- ; CHECK-NEXT: [[TMP48:%.*]] = xor i1 [[TMP46]], true
113
- ; CHECK-NEXT: [[TMP49:%.*]] = or i1 [[TMP48]], [[TMP47]]
91
+ ; CHECK-NEXT: [[TMP28:%.*]] = or i1 [[TMP25]], [[TMP47]]
114
92
; CHECK-NEXT: [[AND61:%.*]] = and i32 [[SPEC_SELECT10]], 16384
115
93
; CHECK-NEXT: [[TOBOOL62:%.*]] = icmp eq i32 [[AND61]], 0
116
94
; CHECK-NEXT: [[OR64:%.*]] = or i32 [[SPEC_SELECT10]], 131072
117
95
; CHECK-NEXT: [[SPEC_SELECT11:%.*]] = select i1 [[TOBOOL62]], i32 [[SPEC_SELECT10]], i32 [[OR64]]
118
- ; CHECK-NEXT: [[TMP50:%.*]] = xor i1 [[TMP49]], true
119
96
; CHECK-NEXT: [[TMP51:%.*]] = xor i1 [[TOBOOL62]], true
120
- ; CHECK-NEXT: [[TMP52:%.*]] = xor i1 [[TMP50]], true
121
- ; CHECK-NEXT: [[TMP53:%.*]] = or i1 [[TMP52]], [[TMP51]]
97
+ ; CHECK-NEXT: [[TMP29:%.*]] = or i1 [[TMP28]], [[TMP51]]
122
98
; CHECK-NEXT: [[AND66:%.*]] = and i32 [[SPEC_SELECT11]], 32768
123
99
; CHECK-NEXT: [[TOBOOL67:%.*]] = icmp eq i32 [[AND66]], 0
124
100
; CHECK-NEXT: [[OR69:%.*]] = or i32 [[SPEC_SELECT11]], 65536
125
101
; CHECK-NEXT: [[SPEC_SELECT12:%.*]] = select i1 [[TOBOOL67]], i32 [[SPEC_SELECT11]], i32 [[OR69]]
126
- ; CHECK-NEXT: [[TMP54:%.*]] = xor i1 [[TMP53]], true
127
102
; CHECK-NEXT: [[TMP55:%.*]] = xor i1 [[TOBOOL67]], true
128
- ; CHECK-NEXT: [[TMP56:%.*]] = xor i1 [[TMP54]], true
129
- ; CHECK-NEXT: [[TMP57:%.*]] = or i1 [[TMP56]], [[TMP55]]
103
+ ; CHECK-NEXT: [[TMP32:%.*]] = or i1 [[TMP29]], [[TMP55]]
130
104
; CHECK-NEXT: [[AND71:%.*]] = and i32 [[SPEC_SELECT12]], 128
131
105
; CHECK-NEXT: [[TOBOOL72:%.*]] = icmp eq i32 [[AND71]], 0
132
106
; CHECK-NEXT: [[OR74:%.*]] = or i32 [[SPEC_SELECT12]], 16777216
133
107
; CHECK-NEXT: [[SPEC_SELECT13:%.*]] = select i1 [[TOBOOL72]], i32 [[SPEC_SELECT12]], i32 [[OR74]]
134
- ; CHECK-NEXT: [[TMP58:%.*]] = xor i1 [[TMP57]], true
135
108
; CHECK-NEXT: [[TMP59:%.*]] = xor i1 [[TOBOOL72]], true
136
- ; CHECK-NEXT: [[TMP60:%.*]] = xor i1 [[TMP58]], true
137
- ; CHECK-NEXT: [[TMP61:%.*]] = or i1 [[TMP60]], [[TMP59]]
109
+ ; CHECK-NEXT: [[TMP61:%.*]] = or i1 [[TMP32]], [[TMP59]]
138
110
; CHECK-NEXT: br i1 [[TMP61]], label [[TMP62:%.*]], label [[TMP63:%.*]]
139
- ; CHECK: 62 :
111
+ ; CHECK: 34 :
140
112
; CHECK-NEXT: store i32 [[SPEC_SELECT13]], ptr [[B]], align 4
141
113
; CHECK-NEXT: br label [[TMP63]]
142
- ; CHECK: 63 :
114
+ ; CHECK: 35 :
143
115
; CHECK-NEXT: ret i32 0
144
116
;
145
117
entry:
0 commit comments