@@ -4474,9 +4474,9 @@ define i32 @src_select_or_ne0_or_and(i32 %x, i32 %y) {
4474
4474
4475
4475
define i32 @src_select_xor_eq0_and_xor (i32 %x , i32 %y ) {
4476
4476
; CHECK-LABEL: @src_select_xor_eq0_and_xor(
4477
- ; CHECK-NEXT: [[XOR :%.*]] = xor i32 [[X:%.*]], [[Y:%.*]]
4478
- ; CHECK-NEXT: [[XOR0 :%.*]] = icmp eq i32 [[XOR ]], 0
4479
- ; CHECK-NEXT: [[COND:%.*]] = select i1 [[XOR0]], i32 [[X ]], i32 [[XOR ]]
4477
+ ; CHECK-NEXT: [[XOR0 :%.*]] = icmp eq i32 [[X:%.*]], [[Y:%.*]]
4478
+ ; CHECK-NEXT: [[XOR :%.*]] = select i1 [[XOR0 ]], i32 0, i32 [[Y]]
4479
+ ; CHECK-NEXT: [[COND:%.*]] = xor i32 [[XOR ]], [[X ]]
4480
4480
; CHECK-NEXT: ret i32 [[COND]]
4481
4481
;
4482
4482
%xor = xor i32 %x , %y
@@ -4488,9 +4488,9 @@ define i32 @src_select_xor_eq0_and_xor(i32 %x, i32 %y) {
4488
4488
4489
4489
define i32 @src_select_xor_ne0_xor_and (i32 %x , i32 %y ) {
4490
4490
; CHECK-LABEL: @src_select_xor_ne0_xor_and(
4491
- ; CHECK-NEXT: [[XOR :%.*]] = xor i32 [[X:%.*]], [[Y:%.*]]
4492
- ; CHECK-NEXT: [[XOR0_NOT :%.*]] = icmp eq i32 [[XOR ]], 0
4493
- ; CHECK-NEXT: [[COND:%.*]] = select i1 [[XOR0_NOT]], i32 [[X ]], i32 [[XOR ]]
4491
+ ; CHECK-NEXT: [[XOR0_NOT :%.*]] = icmp eq i32 [[X:%.*]], [[Y:%.*]]
4492
+ ; CHECK-NEXT: [[XOR :%.*]] = select i1 [[XOR0_NOT ]], i32 0, i32 [[Y]]
4493
+ ; CHECK-NEXT: [[COND:%.*]] = xor i32 [[XOR ]], [[X ]]
4494
4494
; CHECK-NEXT: ret i32 [[COND]]
4495
4495
;
4496
4496
%xor = xor i32 %x , %y
@@ -4502,9 +4502,9 @@ define i32 @src_select_xor_ne0_xor_and(i32 %x, i32 %y) {
4502
4502
4503
4503
define i32 @src_select_xor_eq0_or_xor (i32 %x , i32 %y ) {
4504
4504
; CHECK-LABEL: @src_select_xor_eq0_or_xor(
4505
- ; CHECK-NEXT: [[XOR :%.*]] = xor i32 [[X:%.*]], [[Y:%.*]]
4506
- ; CHECK-NEXT: [[XOR0 :%.*]] = icmp eq i32 [[XOR ]], 0
4507
- ; CHECK-NEXT: [[COND:%.*]] = select i1 [[XOR0]], i32 [[X ]], i32 [[XOR ]]
4505
+ ; CHECK-NEXT: [[XOR0 :%.*]] = icmp eq i32 [[X:%.*]], [[Y:%.*]]
4506
+ ; CHECK-NEXT: [[XOR :%.*]] = select i1 [[XOR0 ]], i32 0, i32 [[Y]]
4507
+ ; CHECK-NEXT: [[COND:%.*]] = xor i32 [[XOR ]], [[X ]]
4508
4508
; CHECK-NEXT: ret i32 [[COND]]
4509
4509
;
4510
4510
%xor = xor i32 %x , %y
@@ -4516,9 +4516,9 @@ define i32 @src_select_xor_eq0_or_xor(i32 %x, i32 %y) {
4516
4516
4517
4517
define i32 @src_select_xor_ne0_xor_or (i32 %x , i32 %y ) {
4518
4518
; CHECK-LABEL: @src_select_xor_ne0_xor_or(
4519
- ; CHECK-NEXT: [[XOR :%.*]] = xor i32 [[X:%.*]], [[Y:%.*]]
4520
- ; CHECK-NEXT: [[XOR0_NOT :%.*]] = icmp eq i32 [[XOR ]], 0
4521
- ; CHECK-NEXT: [[COND:%.*]] = select i1 [[XOR0_NOT]], i32 [[X ]], i32 [[XOR ]]
4519
+ ; CHECK-NEXT: [[XOR0_NOT :%.*]] = icmp eq i32 [[X:%.*]], [[Y:%.*]]
4520
+ ; CHECK-NEXT: [[XOR :%.*]] = select i1 [[XOR0_NOT ]], i32 0, i32 [[Y]]
4521
+ ; CHECK-NEXT: [[COND:%.*]] = xor i32 [[XOR ]], [[X ]]
4522
4522
; CHECK-NEXT: ret i32 [[COND]]
4523
4523
;
4524
4524
%xor = xor i32 %x , %y
@@ -4863,8 +4863,8 @@ define i32 @src_no_trans_select_xor_eq0_xor_and(i32 %x, i32 %y) {
4863
4863
ret i32 %cond
4864
4864
}
4865
4865
4866
- define i32 @src_no_trans_select_xor_eq0_xor_or (i32 %x , i32 %y ) {
4867
- ; CHECK-LABEL: @src_no_trans_select_xor_eq0_xor_or (
4866
+ define i32 @src_trans_select_xor_eq0_xor_or (i32 %x , i32 %y ) {
4867
+ ; CHECK-LABEL: @src_trans_select_xor_eq0_xor_or (
4868
4868
; CHECK-NEXT: [[XOR0:%.*]] = icmp eq i32 [[X:%.*]], [[Y:%.*]]
4869
4869
; CHECK-NEXT: [[OR:%.*]] = or i32 [[X]], [[Y]]
4870
4870
; CHECK-NEXT: [[COND:%.*]] = select i1 [[XOR0]], i32 0, i32 [[OR]]
@@ -4877,12 +4877,11 @@ define i32 @src_no_trans_select_xor_eq0_xor_or(i32 %x, i32 %y) {
4877
4877
ret i32 %cond
4878
4878
}
4879
4879
4880
- define i32 @src_no_trans_select_xor_eq0_and_xor (i32 %x , i32 %y ) {
4881
- ; CHECK-LABEL: @src_no_trans_select_xor_eq0_and_xor(
4882
- ; CHECK-NEXT: [[XOR:%.*]] = xor i32 [[X:%.*]], [[Y:%.*]]
4883
- ; CHECK-NEXT: [[XOR0:%.*]] = icmp eq i32 [[X]], [[Y]]
4884
- ; CHECK-NEXT: [[AND:%.*]] = and i32 [[X]], [[Y]]
4885
- ; CHECK-NEXT: [[COND:%.*]] = select i1 [[XOR0]], i32 [[AND]], i32 [[XOR]]
4880
+ define i32 @src_trans_select_xor_eq0_and_xor (i32 %x , i32 %y ) {
4881
+ ; CHECK-LABEL: @src_trans_select_xor_eq0_and_xor(
4882
+ ; CHECK-NEXT: [[XOR0:%.*]] = icmp eq i32 [[X:%.*]], [[Y:%.*]]
4883
+ ; CHECK-NEXT: [[XOR:%.*]] = select i1 [[XOR0]], i32 0, i32 [[Y]]
4884
+ ; CHECK-NEXT: [[COND:%.*]] = xor i32 [[XOR]], [[X]]
4886
4885
; CHECK-NEXT: ret i32 [[COND]]
4887
4886
;
4888
4887
%xor = xor i32 %x , %y
0 commit comments