65 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc < %s -mtriple=i686-- -O0 | FileCheck %s --check-prefix=X863; RUN: llc < %s -mtriple=x86_64-- -O0 | FileCheck %s --check-prefix=X644 5define void @public_type_test() {6; X86-LABEL: public_type_test:7; X86: # %bb.0: # %bb8; X86-NEXT: movb $1, %al9; X86-NEXT: # %bb.1: # %bb110; X86-NEXT: retl11;12; X64-LABEL: public_type_test:13; X64: # %bb.0: # %bb14; X64-NEXT: movb $1, %al15; X64-NEXT: # %bb.1: # %bb116; X64-NEXT: retq17bb:18 %call = call i1 @llvm.public.type.test(ptr null, metadata !"typeinfo")19 br label %bb120 21bb1:22 call void @llvm.assume(i1 %call)23 ret void24}25 26define void @type_test() {27; X86-LABEL: type_test:28; X86: # %bb.0: # %bb29; X86-NEXT: movb $1, %al30; X86-NEXT: testb $1, %al31; X86-NEXT: jne .LBB1_232; X86-NEXT: # %bb.1: # %bb133; X86-NEXT: ud1l 2(%eax), %eax34; X86-NEXT: .LBB1_2: # %bb235; X86-NEXT: retl36;37; X64-LABEL: type_test:38; X64: # %bb.0: # %bb39; X64-NEXT: movb $1, %al40; X64-NEXT: testb $1, %al41; X64-NEXT: jne .LBB1_242; X64-NEXT: # %bb.1: # %bb143; X64-NEXT: ud1l 2(%eax), %eax44; X64-NEXT: .LBB1_2: # %bb245; X64-NEXT: retq46bb:47 %call = tail call i1 @llvm.type.test(ptr null, metadata !"typeinfo")48 br i1 %call, label %bb2, label %bb149 50bb1:51 tail call void @llvm.ubsantrap(i8 2)52 unreachable53 54bb2:55 ret void56}57 58declare i1 @llvm.public.type.test(ptr, metadata)59 60declare void @llvm.assume(i1 noundef)61 62declare i1 @llvm.type.test(ptr, metadata)63 64declare void @llvm.ubsantrap(i8 immarg)65