Changeset View
Changeset View
Standalone View
Standalone View
llvm/trunk/test/CodeGen/Mips/mips64extins.ll
Show All 35 Lines | ; CHECK: dins ${{[0-9]+}}, ${{[0-9]+}}, 8, 10 | ||||
%and3 = and i64 %i, -261889 | %and3 = and i64 %i, -261889 | ||||
%or = or i64 %and3, %and | %or = or i64 %and3, %and | ||||
ret i64 %or | ret i64 %or | ||||
} | } | ||||
define i64 @dinsm(i64 %i, i64 %j) nounwind readnone { | define i64 @dinsm(i64 %i, i64 %j) nounwind readnone { | ||||
entry: | entry: | ||||
; CHECK-LABEL: dinsm: | ; CHECK-LABEL: dinsm: | ||||
; CHECK: dins ${{[0-9]+}}, ${{[0-9]+}}, 10, 33 | ; CHECK: dinsm ${{[0-9]+}}, ${{[0-9]+}}, 10, 33 | ||||
%shl4 = shl i64 %j, 10 | %shl4 = shl i64 %j, 10 | ||||
%and = and i64 %shl4, 8796093021184 | %and = and i64 %shl4, 8796093021184 | ||||
%and5 = and i64 %i, -8796093021185 | %and5 = and i64 %i, -8796093021185 | ||||
%or = or i64 %and5, %and | %or = or i64 %and5, %and | ||||
ret i64 %or | ret i64 %or | ||||
} | } | ||||
define i64 @dinsu(i64 %i, i64 %j) nounwind readnone { | define i64 @dinsu(i64 %i, i64 %j) nounwind readnone { | ||||
entry: | entry: | ||||
; CHECK-LABEL: dinsu: | ; CHECK-LABEL: dinsu: | ||||
; CHECK: dins ${{[0-9]+}}, ${{[0-9]+}}, 40, 13 | ; CHECK: dinsu ${{[0-9]+}}, ${{[0-9]+}}, 40, 13 | ||||
%shl4 = shl i64 %j, 40 | %shl4 = shl i64 %j, 40 | ||||
%and = and i64 %shl4, 9006099743113216 | %and = and i64 %shl4, 9006099743113216 | ||||
%and5 = and i64 %i, -9006099743113217 | %and5 = and i64 %i, -9006099743113217 | ||||
%or = or i64 %and5, %and | %or = or i64 %and5, %and | ||||
ret i64 %or | ret i64 %or | ||||
} | } |