github.com/decomp/exp@v0.0.0-20210624183419-6d058f5e1da6/lift/x86/testdata/x86_64/fpu/fild/fild.ll (about)

     1  define void @fild_m16int() !addr !{!"0x10000000"} {
     2  ; <label>:0
     3  	%f0 = alloca x86_fp80
     4  	%f1 = alloca x86_fp80
     5  	%f2 = alloca x86_fp80
     6  	%f3 = alloca x86_fp80
     7  	%f4 = alloca x86_fp80
     8  	%f5 = alloca x86_fp80
     9  	%f6 = alloca x86_fp80
    10  	%f7 = alloca x86_fp80
    11  	%st = alloca i8
    12  	store i8 7, i8* %st
    13  	br label %block_10000000
    14  
    15  block_10000000:
    16  	%1 = load i16, i16* @m16
    17  	%2 = sitofp i16 %1 to x86_fp80
    18  	%3 = load i8, i8* %st
    19  	%4 = icmp eq i8 %3, 0
    20  	br i1 %4, label %5, label %6
    21  
    22  ; <label>:5
    23  	store i8 7, i8* %st
    24  	br label %8
    25  
    26  ; <label>:6
    27  	%7 = sub i8 %3, 1
    28  	store i8 %7, i8* %st
    29  	br label %8
    30  
    31  ; <label>:8
    32  	%9 = load i8, i8* %st
    33  	switch i8 %9, label %18 [
    34  		i8 0, label %10
    35  		i8 1, label %11
    36  		i8 2, label %12
    37  		i8 3, label %13
    38  		i8 4, label %14
    39  		i8 5, label %15
    40  		i8 6, label %16
    41  		i8 7, label %17
    42  	]
    43  
    44  ; <label>:10
    45  	store x86_fp80 %2, x86_fp80* %f0
    46  	br label %19
    47  
    48  ; <label>:11
    49  	store x86_fp80 %2, x86_fp80* %f1
    50  	br label %19
    51  
    52  ; <label>:12
    53  	store x86_fp80 %2, x86_fp80* %f2
    54  	br label %19
    55  
    56  ; <label>:13
    57  	store x86_fp80 %2, x86_fp80* %f3
    58  	br label %19
    59  
    60  ; <label>:14
    61  	store x86_fp80 %2, x86_fp80* %f4
    62  	br label %19
    63  
    64  ; <label>:15
    65  	store x86_fp80 %2, x86_fp80* %f5
    66  	br label %19
    67  
    68  ; <label>:16
    69  	store x86_fp80 %2, x86_fp80* %f6
    70  	br label %19
    71  
    72  ; <label>:17
    73  	store x86_fp80 %2, x86_fp80* %f7
    74  	br label %19
    75  
    76  ; <label>:18
    77  	unreachable
    78  
    79  ; <label>:19
    80  	ret void
    81  }
    82  
    83  define void @fild_m32int() !addr !{!"0x10000007"} {
    84  ; <label>:0
    85  	%f0 = alloca x86_fp80
    86  	%f1 = alloca x86_fp80
    87  	%f2 = alloca x86_fp80
    88  	%f3 = alloca x86_fp80
    89  	%f4 = alloca x86_fp80
    90  	%f5 = alloca x86_fp80
    91  	%f6 = alloca x86_fp80
    92  	%f7 = alloca x86_fp80
    93  	%st = alloca i8
    94  	store i8 7, i8* %st
    95  	br label %block_10000007
    96  
    97  block_10000007:
    98  	%1 = load i32, i32* @m32
    99  	%2 = sitofp i32 %1 to x86_fp80
   100  	%3 = load i8, i8* %st
   101  	%4 = icmp eq i8 %3, 0
   102  	br i1 %4, label %5, label %6
   103  
   104  ; <label>:5
   105  	store i8 7, i8* %st
   106  	br label %8
   107  
   108  ; <label>:6
   109  	%7 = sub i8 %3, 1
   110  	store i8 %7, i8* %st
   111  	br label %8
   112  
   113  ; <label>:8
   114  	%9 = load i8, i8* %st
   115  	switch i8 %9, label %18 [
   116  		i8 0, label %10
   117  		i8 1, label %11
   118  		i8 2, label %12
   119  		i8 3, label %13
   120  		i8 4, label %14
   121  		i8 5, label %15
   122  		i8 6, label %16
   123  		i8 7, label %17
   124  	]
   125  
   126  ; <label>:10
   127  	store x86_fp80 %2, x86_fp80* %f0
   128  	br label %19
   129  
   130  ; <label>:11
   131  	store x86_fp80 %2, x86_fp80* %f1
   132  	br label %19
   133  
   134  ; <label>:12
   135  	store x86_fp80 %2, x86_fp80* %f2
   136  	br label %19
   137  
   138  ; <label>:13
   139  	store x86_fp80 %2, x86_fp80* %f3
   140  	br label %19
   141  
   142  ; <label>:14
   143  	store x86_fp80 %2, x86_fp80* %f4
   144  	br label %19
   145  
   146  ; <label>:15
   147  	store x86_fp80 %2, x86_fp80* %f5
   148  	br label %19
   149  
   150  ; <label>:16
   151  	store x86_fp80 %2, x86_fp80* %f6
   152  	br label %19
   153  
   154  ; <label>:17
   155  	store x86_fp80 %2, x86_fp80* %f7
   156  	br label %19
   157  
   158  ; <label>:18
   159  	unreachable
   160  
   161  ; <label>:19
   162  	ret void
   163  }
   164  
   165  define void @fild_m64int() !addr !{!"0x1000000E"} {
   166  ; <label>:0
   167  	%f0 = alloca x86_fp80
   168  	%f1 = alloca x86_fp80
   169  	%f2 = alloca x86_fp80
   170  	%f3 = alloca x86_fp80
   171  	%f4 = alloca x86_fp80
   172  	%f5 = alloca x86_fp80
   173  	%f6 = alloca x86_fp80
   174  	%f7 = alloca x86_fp80
   175  	%st = alloca i8
   176  	store i8 7, i8* %st
   177  	br label %block_1000000E
   178  
   179  block_1000000E:
   180  	%1 = load i64, i64* @m64
   181  	%2 = sitofp i64 %1 to x86_fp80
   182  	%3 = load i8, i8* %st
   183  	%4 = icmp eq i8 %3, 0
   184  	br i1 %4, label %5, label %6
   185  
   186  ; <label>:5
   187  	store i8 7, i8* %st
   188  	br label %8
   189  
   190  ; <label>:6
   191  	%7 = sub i8 %3, 1
   192  	store i8 %7, i8* %st
   193  	br label %8
   194  
   195  ; <label>:8
   196  	%9 = load i8, i8* %st
   197  	switch i8 %9, label %18 [
   198  		i8 0, label %10
   199  		i8 1, label %11
   200  		i8 2, label %12
   201  		i8 3, label %13
   202  		i8 4, label %14
   203  		i8 5, label %15
   204  		i8 6, label %16
   205  		i8 7, label %17
   206  	]
   207  
   208  ; <label>:10
   209  	store x86_fp80 %2, x86_fp80* %f0
   210  	br label %19
   211  
   212  ; <label>:11
   213  	store x86_fp80 %2, x86_fp80* %f1
   214  	br label %19
   215  
   216  ; <label>:12
   217  	store x86_fp80 %2, x86_fp80* %f2
   218  	br label %19
   219  
   220  ; <label>:13
   221  	store x86_fp80 %2, x86_fp80* %f3
   222  	br label %19
   223  
   224  ; <label>:14
   225  	store x86_fp80 %2, x86_fp80* %f4
   226  	br label %19
   227  
   228  ; <label>:15
   229  	store x86_fp80 %2, x86_fp80* %f5
   230  	br label %19
   231  
   232  ; <label>:16
   233  	store x86_fp80 %2, x86_fp80* %f6
   234  	br label %19
   235  
   236  ; <label>:17
   237  	store x86_fp80 %2, x86_fp80* %f7
   238  	br label %19
   239  
   240  ; <label>:18
   241  	unreachable
   242  
   243  ; <label>:19
   244  	ret void
   245  }