/// *down* to the given alignment.
HANDLE_TARGET_OPCODE(G_PTR_MASK)
-/// Generic BRANCH instruction. This is an unconditional branch.
-HANDLE_TARGET_OPCODE(G_BR)
-
/// Generic insertelement.
HANDLE_TARGET_OPCODE(G_INSERT_VECTOR_ELT)
/// Generic extractelement.
HANDLE_TARGET_OPCODE(G_EXTRACT_VECTOR_ELT)
+/// Generic BRANCH instruction. This is an unconditional branch.
+HANDLE_TARGET_OPCODE(G_BR)
+// WARNING: make sure you update the PRE_ISEL_GENERIC_OPCODE_END if you put
+// anything after G_BR!!! Better yet, don't.
+
// TODO: Add more generic opcodes as we move along.
/// Marker for the end of the generic opcode.
continue:
ret void
}
+
+; FALLBACK-WITH-REPORT-ERR: remark: <unknown>:0:0: unable to legalize instruction: {{.*}} G_EXTRACT_VECTOR
+; FALLBACK-WITH-REPORT-ERR: warning: Instruction selection used fallback path for unhandled_extract
+; FALLBACK-WITH-REPORT-OUT-LABEL: unhandled_extract:
+define i32 @unhandled_extract(<2 x i32> %in, i64 %elt) {
+ %tmp = extractelement <2 x i32> %in, i64 %elt
+ %res = add i32 %tmp, 1
+ ret i32 %res
+}