forked from OSchip/llvm-project
[InstCombine] add abs tests with undef elts; NFC
llvm-svn: 336065
This commit is contained in:
parent
a9fdb9fd37
commit
279a1a39ad
|
@ -73,6 +73,21 @@ define <2 x i8> @abs_canonical_2(<2 x i8> %x) {
|
|||
ret <2 x i8> %abs
|
||||
}
|
||||
|
||||
; Even if a constant has undef elements.
|
||||
|
||||
define <2 x i8> @abs_canonical_2_vec_undef_elts(<2 x i8> %x) {
|
||||
; CHECK-LABEL: @abs_canonical_2_vec_undef_elts(
|
||||
; CHECK-NEXT: [[CMP:%.*]] = icmp sgt <2 x i8> [[X:%.*]], <i8 undef, i8 -1>
|
||||
; CHECK-NEXT: [[NEG:%.*]] = sub <2 x i8> zeroinitializer, [[X]]
|
||||
; CHECK-NEXT: [[ABS:%.*]] = select <2 x i1> [[CMP]], <2 x i8> [[X]], <2 x i8> [[NEG]]
|
||||
; CHECK-NEXT: ret <2 x i8> [[ABS]]
|
||||
;
|
||||
%cmp = icmp sgt <2 x i8> %x, <i8 undef, i8 -1>
|
||||
%neg = sub <2 x i8> zeroinitializer, %x
|
||||
%abs = select <2 x i1> %cmp, <2 x i8> %x, <2 x i8> %neg
|
||||
ret <2 x i8> %abs
|
||||
}
|
||||
|
||||
; NSW should not change.
|
||||
|
||||
define i8 @abs_canonical_3(i8 %x) {
|
||||
|
@ -146,6 +161,21 @@ define <2 x i8> @nabs_canonical_2(<2 x i8> %x) {
|
|||
ret <2 x i8> %abs
|
||||
}
|
||||
|
||||
; Even if a constant has undef elements.
|
||||
|
||||
define <2 x i8> @nabs_canonical_2_vec_undef_elts(<2 x i8> %x) {
|
||||
; CHECK-LABEL: @nabs_canonical_2_vec_undef_elts(
|
||||
; CHECK-NEXT: [[CMP:%.*]] = icmp sgt <2 x i8> [[X:%.*]], <i8 -1, i8 undef>
|
||||
; CHECK-NEXT: [[NEG:%.*]] = sub <2 x i8> zeroinitializer, [[X]]
|
||||
; CHECK-NEXT: [[ABS:%.*]] = select <2 x i1> [[CMP]], <2 x i8> [[NEG]], <2 x i8> [[X]]
|
||||
; CHECK-NEXT: ret <2 x i8> [[ABS]]
|
||||
;
|
||||
%cmp = icmp sgt <2 x i8> %x, <i8 -1, i8 undef>
|
||||
%neg = sub <2 x i8> zeroinitializer, %x
|
||||
%abs = select <2 x i1> %cmp, <2 x i8> %neg, <2 x i8> %x
|
||||
ret <2 x i8> %abs
|
||||
}
|
||||
|
||||
; NSW should not change.
|
||||
|
||||
define i8 @nabs_canonical_3(i8 %x) {
|
||||
|
|
Loading…
Reference in New Issue