[LIR] Fix missing block index and add: ishl, land.

Bug: b/225838009
Change-Id: Ic4d0ca63b5b1c7b9740f7ac8698f962b26fd1179
diff --git a/src/main/java/com/android/tools/r8/lightir/Lir2IRConverter.java b/src/main/java/com/android/tools/r8/lightir/Lir2IRConverter.java
index 9c3cb42..c80020b 100644
--- a/src/main/java/com/android/tools/r8/lightir/Lir2IRConverter.java
+++ b/src/main/java/com/android/tools/r8/lightir/Lir2IRConverter.java
@@ -164,7 +164,7 @@
       // Control instructions must close the block, thus the current block is null iff the
       // instruction denotes a new block.
       if (currentBlock == null) {
-        currentBlock = blocks.computeIfAbsent(nextInstructionIndex, k -> new BasicBlock());
+        currentBlock = getBasicBlock(nextInstructionIndex);
         CatchHandlers<Integer> handlers =
             code.getTryCatchTable().getHandlersForBlock(nextInstructionIndex);
         if (handlers != null) {
diff --git a/src/main/java/com/android/tools/r8/lightir/LirParsedInstructionCallback.java b/src/main/java/com/android/tools/r8/lightir/LirParsedInstructionCallback.java
index f715f0e..57e0914 100644
--- a/src/main/java/com/android/tools/r8/lightir/LirParsedInstructionCallback.java
+++ b/src/main/java/com/android/tools/r8/lightir/LirParsedInstructionCallback.java
@@ -253,7 +253,8 @@
     EV right = getNextValueOperand(view);
     switch (opcode) {
       case LirOpcodes.ISHL:
-        throw new Unimplemented(LirOpcodes.toString(opcode));
+        onShl(NumericType.INT, left, right);
+        return;
       case LirOpcodes.LSHL:
         onShl(NumericType.LONG, left, right);
         return;
@@ -273,7 +274,8 @@
         onAnd(NumericType.INT, left, right);
         return;
       case LirOpcodes.LAND:
-        throw new Unimplemented(LirOpcodes.toString(opcode));
+        onAnd(NumericType.LONG, left, right);
+        return;
       case LirOpcodes.IOR:
         onOr(NumericType.INT, left, right);
         return;