28 lines · plain
1; Check token values are correctly handled by operands-skip2 3; RUN: llvm-reduce --abort-on-invalid-reduction --delta-passes=operands-skip --test FileCheck --test-arg --check-prefix=INTERESTING --test-arg %s --test-arg --input-file %s -o %t4; RUN: FileCheck -check-prefix=RESULT %s < %t5 6; INTERESTING-LABEL: define void @tokens(7; INTERESTING: call void @llvm.token.consumer8 9; RESULT-LABEL: define void @tokens(ptr %ptr) {10; RESULT-NEXT: %token = call token @llvm.token.producer()11; RESULT-NEXT:store i32 0, ptr %ptr, align 412; RESULT-NEXT:%chain = call token @llvm.token.chain(token %token)13; RESULT-NEXT:call void @llvm.token.consumer(token %token)14; RESULT-NEXT:store i32 1, ptr %ptr, align 415; RESULT-NEXT:ret void16define void @tokens(ptr %ptr) {17 %token = call token @llvm.token.producer()18 store i32 0, ptr %ptr19 %chain = call token @llvm.token.chain(token %token)20 call void @llvm.token.consumer(token %chain) ; -> rewrite to use %token directly21 store i32 1, ptr %ptr22 ret void23}24 25declare token @llvm.token.producer()26declare token @llvm.token.chain(token)27declare void @llvm.token.consumer(token)28