brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 627e2c9 Raw
47 lines · plain
1; RUN: opt -passes='print<ir2vec>' -o /dev/null -ir2vec-vocab-path=%S/Inputs/dummy_3D_nonzero_opc_vocab.json %s 2>&1 | FileCheck %s2 3define dso_local i32 @abc(i32 noundef %a, i32 noundef %b) #0 {4entry:5  %retval = alloca i32, align 46  %a.addr = alloca i32, align 47  %b.addr = alloca i32, align 48  store i32 %a, ptr %a.addr, align 49  store i32 %b, ptr %b.addr, align 410  %0 = load i32, ptr %a.addr, align 411  %1 = load i32, ptr %b.addr, align 412  %cmp = icmp sgt i32 %0, %113  br i1 %cmp, label %if.then, label %if.else14 15if.then:                                          ; preds = %entry16  %2 = load i32, ptr %b.addr, align 417  store i32 %2, ptr %retval, align 418  br label %return19 20if.else:                                          ; preds = %entry21  %3 = load i32, ptr %a.addr, align 422  store i32 %3, ptr %retval, align 423  br label %return24 25unreachable:                                      ; Unreachable26  store i32 0, ptr %retval, align 427  br label %return28 29return:                                           ; preds = %if.else, %if.then30  %4 = load i32, ptr %retval, align 431  ret i32 %432}33; We'll get individual basic block embeddings for all blocks in the function.34; But unreachable blocks are not counted for computing the function embedding.35; CHECK: Function vector:  [ 1301.20  1318.20  1335.20 ]36; CHECK-NEXT: Basic block vectors:37; CHECK-NEXT: Basic block: entry:38; CHECK-NEXT: [ 816.20  825.20  834.20 ]39; CHECK-NEXT: Basic block: if.then:40; CHECK-NEXT: [ 195.00  198.00  201.00 ]41; CHECK-NEXT: Basic block: if.else:42; CHECK-NEXT: [ 195.00  198.00  201.00 ]43; CHECK-NEXT: Basic block: unreachable:44; CHECK-NEXT:  [ 101.00  103.00  105.00 ]45; CHECK-NEXT: Basic block: return:46; CHECK-NEXT: [ 95.00  97.00  99.00 ]47