[WebAssembly] Fix legalization of shift operators on large integer types.
[oota-llvm.git] / test / CodeGen / Thumb2 / thumb2-ifcvt2.ll
index 788fa0674e626be0ccd65b068781b12aedb73c6d..4a76e100b65804ff92aacc11cd2598b04c42b645 100644 (file)
@@ -1,4 +1,6 @@
-; RUN: llc < %s -mtriple=thumbv7-apple-ios | FileCheck %s
+; RUN: llc < %s -mtriple=thumbv7-apple-ios -arm-atomic-cfg-tidy=0 | FileCheck %s
+; RUN: llc < %s -mtriple=thumbv7-apple-ios -arm-atomic-cfg-tidy=0 -arm-default-it | FileCheck %s
+; RUN: llc < %s -mtriple=thumbv8-apple-ios -arm-atomic-cfg-tidy=0 -arm-no-restrict-it | FileCheck %s
 
 define void @foo(i32 %X, i32 %Y) {
 entry:
@@ -6,14 +8,14 @@ entry:
 ; CHECK: it ne
 ; CHECK: cmpne
 ; CHECK: it hi
-; CHECK: pophi {r7, pc}
+; CHECK: bxhi lr
        %tmp1 = icmp ult i32 %X, 4              ; <i1> [#uses=1]
        %tmp4 = icmp eq i32 %Y, 0               ; <i1> [#uses=1]
        %tmp7 = or i1 %tmp4, %tmp1              ; <i1> [#uses=1]
        br i1 %tmp7, label %cond_true, label %UnifiedReturnBlock
 
 cond_true:             ; preds = %entry
-       %tmp10 = call i32 (...)* @bar( )                ; <i32> [#uses=0]
+       %tmp10 = call i32 (...) @bar( )         ; <i32> [#uses=0]
        ret void
 
 UnifiedReturnBlock:            ; preds = %entry
@@ -39,9 +41,9 @@ entry:
        br label %tailrecurse
 
 tailrecurse:           ; preds = %bb, %entry
-       %tmp6 = load %struct.quad_struct** null         ; <%struct.quad_struct*> [#uses=1]
-       %tmp9 = load %struct.quad_struct** null         ; <%struct.quad_struct*> [#uses=2]
-       %tmp12 = load %struct.quad_struct** null                ; <%struct.quad_struct*> [#uses=1]
+       %tmp6 = load %struct.quad_struct*, %struct.quad_struct** null           ; <%struct.quad_struct*> [#uses=1]
+       %tmp9 = load %struct.quad_struct*, %struct.quad_struct** null           ; <%struct.quad_struct*> [#uses=2]
+       %tmp12 = load %struct.quad_struct*, %struct.quad_struct** null          ; <%struct.quad_struct*> [#uses=1]
        %tmp14 = icmp eq %struct.quad_struct* null, null                ; <i1> [#uses=1]
        %tmp17 = icmp eq %struct.quad_struct* %tmp6, null               ; <i1> [#uses=1]
        %tmp23 = icmp eq %struct.quad_struct* %tmp9, null               ; <i1> [#uses=1]
@@ -67,7 +69,7 @@ define fastcc void @t1(%struct.SString* %word, i8 signext  %c) {
 entry:
 ; CHECK-LABEL: t1:
 ; CHECK: it ne
-; CHECK: popne {r7, pc}
+; CHECK: bxne lr
        %tmp1 = icmp eq %struct.SString* %word, null            ; <i1> [#uses=1]
        br i1 %tmp1, label %cond_true, label %cond_false