Fix scheduler's `FieldAccessHeapLocation()`.

Use the correct target for predicated get.

Also remove an always-false condition from LSE.

Test: m
Bug: 188188275
Bug: 188847019
Change-Id: I731e181c8c0d812120dc4fad0c011158053fa7a8
diff --git a/compiler/optimizing/scheduler.cc b/compiler/optimizing/scheduler.cc
index 7140e24..cb340f5 100644
--- a/compiler/optimizing/scheduler.cc
+++ b/compiler/optimizing/scheduler.cc
@@ -149,8 +149,10 @@
   DCHECK(GetFieldInfo(instr) != nullptr);
   DCHECK(heap_location_collector_ != nullptr);
 
-  size_t heap_loc = heap_location_collector_->GetFieldHeapLocation(instr->InputAt(0),
-                                                                   GetFieldInfo(instr));
+  HInstruction* ref = instr->IsPredicatedInstanceFieldGet()
+      ? instr->AsPredicatedInstanceFieldGet()->GetTarget()
+      : instr->InputAt(0);
+  size_t heap_loc = heap_location_collector_->GetFieldHeapLocation(ref, GetFieldInfo(instr));
   // This field access should be analyzed and added to HeapLocationCollector before.
   DCHECK(heap_loc != HeapLocationCollector::kHeapLocationNotFound);