mlineopt.test
1.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
RUN: llvm-opt-report -r %p %p/Inputs/sr2.yaml | FileCheck -strict-whitespace %s
; CHECK: < {{.*[/\]}}sr2.c
; CHECK-NEXT: 1 | /*
; CHECK-NEXT: 2 | ** Write a 64-bit variable-length integer to memory starting at p[0].
; CHECK-NEXT: 3 | ** The length of data write will be between 1 and 9 bytes. The number
; CHECK-NEXT: 4 | ** of bytes written is returned.
; CHECK-NEXT: 5 | **
; CHECK-NEXT: 6 | ** A variable-length integer consists of the lower 7 bits of each byte
; CHECK-NEXT: 7 | ** for all bytes that have the 8th bit set and one byte with the 8th
; CHECK-NEXT: 8 | ** bit clear. Except, if we get to the 9th byte, it stores the full
; CHECK-NEXT: 9 | ** 8 bits and is the last byte.
; CHECK-NEXT: 10 | */
; CHECK-NEXT: 11 | SQLITE_PRIVATE int sqlite3PutVarint(unsigned char *p, u64 v){
; CHECK-NEXT: 12 | int i, j, n;
; CHECK-NEXT: 13 | u8 buf[10];
; CHECK-NEXT: 14 | if( v & (((u64)0xff000000)<<32) ){
; CHECK-NEXT: 15 | p[8] = v;
; CHECK-NEXT: 16 | v >>= 8;
; CHECK-NEXT: 17 | for(i=7; i>=0; i--){
; CHECK-NEXT: 18 | p[i] = (v & 0x7f) | 0x80;
; CHECK-NEXT: 19 | v >>= 7;
; CHECK-NEXT: 20 | }
; CHECK-NEXT: 21 | return 9;
; CHECK-NEXT: 22 | }
; CHECK-NEXT: 23 | n = 0;
; CHECK-NEXT: 24 | do{
; CHECK-NEXT: 25 | buf[n++] = (v & 0x7f) | 0x80;
; CHECK-NEXT: 26 | v >>= 7;
; CHECK-NEXT: 27 | }while( v!=0 );
; CHECK-NEXT: 28 | buf[0] &= 0x7f;
; CHECK-NEXT: 29 | assert( n<=9 );
; CHECK-NEXT: 30 U2V16,2 | for(i=0, j=n-1; j>=0; j--, i++){
; CHECK-NEXT: 31 | p[i] = buf[j];
; CHECK-NEXT: 32 | }
; CHECK-NEXT: 33 | return n;
; CHECK-NEXT: 34 | }
; CHECK-NEXT: 35 |