ret <2 x i7> %sh2
}
-; Don't hide the shl from scalar evolution. DAGCombine will get it.
-
define i23 @test11(i23 %x) {
; CHECK-LABEL: @test11(
; CHECK-NEXT: [[TMP1:%.*]] = mul i23 [[X:%.*]], 6
ret <2 x i47> %sh2
}
-; Don't hide the shl from scalar evolution. DAGCombine will get it.
-
define i18 @test13(i18 %x) {
; CHECK-LABEL: @test13(
; CHECK-NEXT: [[TMP1:%.*]] = mul i18 [[X:%.*]], 6
ret i8 %C
}
-;; This transformation is deferred to DAGCombine:
;; (A >> 3) << 4 === (A & 0x1F) << 1
-;; The shl may be valuable to scalar evolution.
define i8 @test11(i8 %x) {
; CHECK-LABEL: @test11(
; CHECK-NEXT: [[TMP1:%.*]] = mul i8 [[X:%.*]], 6
ret i8 %C
}
-;; This is deferred to DAGCombine unless %B is single-use.
;; (A >> 8) << 8 === A & -256
define i32 @test12(i32 %A) {
; CHECK-LABEL: @test12(
ret i8 %r
}
-;; This transformation is deferred to DAGCombine:
;; (A >> 3) << 4 === (A & -8) * 2
-;; The shl may be valuable to scalar evolution.
define i8 @test13(i8 %x) {
; CHECK-LABEL: @test13(
; CHECK-NEXT: [[TMP1:%.*]] = mul i8 [[X:%.*]], 6