Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Bitcode / flags.ll
blobfd56694ccceb2ca47fdf731fbfe6b84ed3b8463f
1 ; RUN: llvm-as < %s | llvm-dis > %t0
2 ; RUN: opt -S < %s > %t1
3 ; RUN: diff %t0 %t1
4 ; RUN: verify-uselistorder < %s
5 ; PR6140
7 ; Make sure the flags are serialized/deserialized properly for both
8 ; forward and backward references.
10 define void @foo() nounwind {
11 entry:
12   br label %first
14 second:                                           ; preds = %first
15   %u = add nuw i32 %a, 0                          ; <i32> [#uses=0]
16   %s = add nsw i32 %a, 0                          ; <i32> [#uses=0]
17   %us = add nuw nsw i32 %a, 0                     ; <i32> [#uses=0]
18   %z = add i32 %a, 0                              ; <i32> [#uses=0]
19   %hh = zext nneg i32 %a to i64
20   %ll = zext i32 %s to i64
21   %ff = uitofp nneg i32 %a to float
22   %bb = uitofp i32 %s to float
23   %jj = or disjoint i32 %a, 0
24   %oo = or i32 %a, 0
25   %tu = trunc nuw i32 %a to i16
26   %ts = trunc nsw i32 %a to i16
27   %tus = trunc nuw nsw i32 %a to i16
28   %t = trunc i32 %a to i16
29   %tuv = trunc nuw <2 x i32> %aa to <2 x i16>
30   %tsv = trunc nsw <2 x i32> %aa to <2 x i16>
31   %tusv = trunc nuw nsw <2 x i32> %aa to <2 x i16>
32   %tv = trunc <2 x i32> %aa to <2 x i16>
33   unreachable
35 first:                                                    ; preds = %entry
36   %aa = bitcast <2 x i32> <i32 0, i32 0> to <2 x i32>
37   %a = bitcast i32 0 to i32                               ; <i32> [#uses=8]
38   %uu = add nuw i32 %a, 0                                 ; <i32> [#uses=0]
39   %ss = add nsw i32 %a, 0                                 ; <i32> [#uses=0]
40   %uuss = add nuw nsw i32 %a, 0                           ; <i32> [#uses=0]
41   %zz = add i32 %a, 0                                     ; <i32> [#uses=0]
42   %kk = zext nneg i32 %a to i64
43   %rr = zext i32 %ss to i64
44   %ww = uitofp nneg i32 %a to float
45   %xx = uitofp i32 %ss to float
46   %mm = or disjoint i32 %a, 0
47   %nn = or i32 %a, 0
48   %tuu = trunc nuw i32 %a to i16
49   %tss = trunc nsw i32 %a to i16
50   %tuss = trunc nuw nsw i32 %a to i16
51   %tt = trunc i32 %a to i16
52   %ttuv = trunc nuw <2 x i32> %aa to <2 x i16>
53   %ttsv = trunc nsw <2 x i32> %aa to <2 x i16>
54   %ttusv = trunc nuw nsw <2 x i32> %aa to <2 x i16>
55   %ttv = trunc <2 x i32> %aa to <2 x i16>
56   br label %second