unsupport align op bundle with one more extra argument
MODIFY
llvm_util/llvm2alive.cpp
llvm_util/llvm2alive.cpp
@@ -751,6 +751,10 @@ public:
} else if (name == "align") {
llvm::Value *ptr = bundle.Inputs[0].get();
llvm::Value *align = bundle.Inputs[1].get();
+ if (bundle.Inputs.size() != 2)
+ // TODO: "align" assume operand bundle may take a third argument.
+ return error(i);
+
auto *aptr = get_operand(ptr), *aalign = get_operand(align);
if (!aptr || !aalign)
return error(i);

ADD
tests/alive-tv/assume/align-op3.srctgt.ll
+; SKIP-IDENTITY
+declare void @llvm.assume(i1)
+
+declare void @f(i8* align(4)) ; has no noundef
+
+define void @src(i8* %ptr) {
+ call void @f(i8* %ptr)
+ ret void
+}
+
+define void @tgt(i8* %ptr) {
+ call void @f(i8* %ptr)
+ call void @llvm.assume(i1 1) [ "align"(i8* %ptr, i64 4, i64 0) ]
+ ret void
+}
+
+; align with 3 ops isn't supported yet.
+; XFAIL: Unsupported instruction

unsupport align op bundle with one more extra argument (#690)