mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-10-30 16:17:05 +00:00 
			
		
		
		
	Add a few cases to instcombine's extractvalue testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53675 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
		| @@ -17,8 +17,22 @@ define i32 @foo() { | |||||||
|         %ns1.2 = insertvalue {i32, {i32, i32}} %ns1.1, i32 %v1, 1, 0 |         %ns1.2 = insertvalue {i32, {i32, i32}} %ns1.1, i32 %v1, 1, 0 | ||||||
|         %ns1   = insertvalue {i32, {i32, i32}} %ns1.2, i32 %v2, 1, 1 |         %ns1   = insertvalue {i32, {i32, i32}} %ns1.2, i32 %v2, 1, 1 | ||||||
|         %s2    = extractvalue {i32, {i32, i32}} %ns1, 1 |         %s2    = extractvalue {i32, {i32, i32}} %ns1, 1 | ||||||
|         call void @bar({i32, i32} %s2) |  | ||||||
|         %v3    = extractvalue {i32, {i32, i32}} %ns1, 1, 1 |         %v3    = extractvalue {i32, {i32, i32}} %ns1, 1, 1 | ||||||
|         ret i32 %v3 |         call void @bar({i32, i32} %s2) | ||||||
|  |  | ||||||
|  |         ; Use nested extractvalues to get to a value | ||||||
|  |         %s3    = extractvalue {i32, {i32, i32}} %ns1, 1 | ||||||
|  |         %v4    = extractvalue {i32, i32} %s3, 1 | ||||||
|  |         call void @bar({i32, i32} %s3) | ||||||
|  |  | ||||||
|  |         ; Use nested insertvalues to build a nested struct | ||||||
|  |         %s4.1 = insertvalue {i32, i32} undef, i32 %v3, 0 | ||||||
|  |         %s4   = insertvalue {i32, i32} %s4.1, i32 %v4, 1 | ||||||
|  |         %ns2  = insertvalue {i32, {i32, i32}} undef, {i32, i32} %s4, 1 | ||||||
|  |  | ||||||
|  |         ; And now extract a single value from there | ||||||
|  |         %v5   = extractvalue {i32, {i32, i32}} %ns2, 1, 1 | ||||||
|  |  | ||||||
|  |         ret i32 %v5 | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user